2014-09-23 186 views
0

我已經創建了一個觸發器,第一列和第二列將連接到第三列。插入之前觸發不連接列

USE `customer_1`; 
DELIMITER $$ 
CREATE DEFINER=`root`@`%` TRIGGER `Metric1_anpr_vega_BINS` BEFORE INSERT ON `Metric1_anpr_vega` FOR EACH ROW 
BEGIN 
    SET NEW.image_id = CONCAT(NEW.camera_id,'-', NEW.id); 
END 

Id  camera_id image_id 
4567 236   236-0 

(在這裏,我不能當觸發它是「0」,而不是4567獲得該行的ID)

什麼觸發會得到插入statment後image_Id ID值exceuted。

如果我插入後使用我得到這個錯誤 - 新行的更新是不允許在後觸發

+0

使用INSERT代替了。 – VMai 2014-09-23 11:26:34

+0

那麼在插入之前,如果它的主鍵不能獲得插入的ID,並且在插入之後無法使用它來更新同一個表。一個想法是獲得最後一個ID,然後加1,並設置image_id – 2014-09-23 11:29:24

+0

你能告訴我如何得到最後一個ID。 – 2014-09-23 11:30:31

回答

0
USE `customer_1`; 
DELIMITER $$ 
CREATE DEFINER=`root`@`%` TRIGGER `Metric1_anpr_vega_BINS` AFTER INSERT ON `Metric1_anpr_vega` FOR EACH ROW 
BEGIN 
    SET NEW.image_id = CONCAT(NEW.camera_id,'-', NEW.id); 
END 
+0

在觸發後不允許更新NEW行 – 2014-09-23 11:31:38