2014-09-23 193 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