0

我有一个具有自动增量主 ID 的表,有时我需要在此表中插入行,其中有一列需要与主 ID 具有相同的值。如何在插入行之前将此列设置为与主 ID 相同的值?这甚至可能吗,还是在插入行后我必须执行另一个更新查询?

4

1 回答 1

0

引用新密钥的规范方法是使用LAST_INSERT_ID(). 您可以尝试插入LAST_INSERT_ID()作为值:

INSERT INTO FOO (dependent_field) values (LAST_INSERT_ID());

来自http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

您可以使用 LAST_INSERT_ID() SQL 函数或 mysql_insert_id() C API 函数检索最新的 AUTO_INCREMENT 值。这些函数是特定于连接的,因此它们的返回值不受另一个也在执行插入的连接的影响。

警告:我没有对此进行测试,因此很可能LAST_INSERT_ID()不会在与生成新 ID 的插入相同的语句中正确评估。如果是这种情况,我能想到的唯一解决方案是按照您的建议进行更新。

于 2012-06-15T14:06:17.983 回答