我有一张看起来像这样的表:
table t1 (
id INT autoincremente,
numero VARCHAR
)
当插入时我需要设置numero = prefix + id的值。
所以我尝试使用触发器:
CREATE TRIGGER `mySweetTrigger`
AFTER INSERT ON `t1`
FOR EACH ROW
BEGIN
SET NEW.numero = CONCAT('prefix', NEW.id);
END
但是不能让它发挥作用......
提前感谢您的帮助。
答案 0 :(得分:1)
不允许后插入触发器修改它自己的数据。前插入没有可用的自动增量值。所以这看起来像个问题。
幸运的是,您可以从架构中访问自动增量值。
CREATE TRIGGER `mySweetTrigger`
BEFORE INSERT ON `t1`
FOR EACH ROW
BEGIN
SET NEW.numero = CONCAT('prefix',
(
SELECT
AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='t1'
));
END