我有一张看起来像这样的桌子:
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
但无法使其正常工作...
在此先感谢您的帮助。
最佳答案
插入后触发器不允许修改其自己的数据。之前插入没有可用的自动增量值。因此,这似乎是一个问题。
幸运的是,您可以从架构中访问自动增量值。
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