0

如何在单个查询中将任何列的值设置为与 mysql、php 中的自动递增 id 的值相同,如果答案是触发器,那么请建议如何做到这一点?

我的桌子:

id int : auto increment
my_id int : want same value as id
title varchar
4

2 回答 2

0

您可以通过使用触发器来做到这一点:

CREATE TRIGGER tinsert_id BEFORE INSERT ON your_table FOR EACH ROW
BEGIN
 SET NEW.my_id= (SELECT AUTO_INCREMENT FROM information_schema.tables WHERE TABLE_SCHEMA='your_db' AND TABLE_NAME='your_table');
END

上面的代码未经测试,但它应该以这种方式工作。

重要提示:还要注意,上述触发器仅对单行插入有效。对于高并发应用程序也不安全。因此,我强烈建议您为 my_id 字段分配一个默认值,并根据您的应用程序稍后使用更合适的内容更新此字段。

于 2013-07-29T10:37:31.923 回答
0

应该管用:

CREATE TRIGGER `update_my_id` BEFORE INSERT ON `tablename` FOR EACH ROW SET NEW.my_id = LAST_INSERT_ID() + 1;
于 2013-07-29T10:50:56.823 回答