插入列值与“自动增量”值相同的行

时间:2018-09-27 07:16:48

标签: mysql connection-pooling auto-increment

我正在填充包含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语句时,此方法能否正常工作?

1 个答案:

答案 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 ;
相关问题