我正在填充包含ID字段(自动递增)和其他一些字段的表。 要求之一是将自动增量值复制到同一表中的另一个字段。
这就是我的做法:
INSERT INTO testtable (testtable.NAME, testtable.lastID) VALUES ('xxx',(SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE TABLE_NAME = 'testtable'
AND table_schema = DATABASE( )))
我想知道此线程安全吗?当有多个连接并且它们都执行insert语句时,此方法能否正常工作?
答案 0 :(得分:1)
您可以设置插入后触发器,将一个字段复制到另一个字段,这是最好的方法。
--
-- Triggers `testtable`
--
DROP TRIGGER IF EXISTS `update_field`;
DELIMITER //
CREATE TRIGGER `update_field` AFTER INSERT ON `testtable`
FOR EACH ROW INSERT INTO testtable
update testtable
set lastID = new.id
WHERE testtable.id = new.id
//
DELIMITER ;