我需要在插入时将 auto_increment ID 值复制到另一列中。
我想我需要一个“插入后”触发器,因为否则新 ID 是未知的..?
我试过这个:
IF NEW.content IS NULL THEN
SET NEW.content = NEW.id;
END IF
但它抱怨:
触发器后不允许更新新行
在这段代码上
CREATE TRIGGER insert_example
BEFORE INSERT ON notes
FOR EACH ROW
SET NEW.content = (
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'notes'
);
我做了这样的事情
SET NEW.content = (SELECT CONCAT('ID',LPAD(AUTO_INCREMENT, number,'0'))
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'notes');
如果您在 id 字段上使用 UNSIGNED_ZEROFILL...并且您可能需要自定义类型的“公共”id...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)