【发布时间】:2014-09-23 11:25:32
【问题描述】:
我创建了一个触发器,其中第一列和第二列将连接到第三列。
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
(这里我在触发时无法获取行的 ID,它是 '0' 而不是 4567)
insert语句执行后,什么触发器会得到image_Id中的ID值。
如果我在插入后使用,我会收到此错误 - 触发器后不允许更新新行
【问题讨论】:
-
使用 AFTER INSERT 代替。
-
好吧,如果它的主键,你不能在插入之前获取插入的 id,并且不能在插入之后使用来更新同一个表。一种想法是获取最后一个 id,然后加一并设置 image_id
-
你能告诉我如何获得最后一个 id。
-
试试
SET NEW.image_id = CONCAT(NEW.camera_id,'-', LAST_INSERT_ID() + 1); -
你可以使用查询来获取最后一个 id,然后增加它。在这里查看它可能会对您有所帮助stackoverflow.com/questions/16597467/…
标签: mysql