我有一个带有自动增量主ID的表,我有时需要在此表中插入行,这些行的列需要与主ID相同。如何在插入行之前将此列设置为与主ID相同的值?这是可能的,还是在插入行后我还要做另一个更新查询?
答案 0 :(得分: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的插入相同的语句中正确评估。如果是这种情况,我能想到的唯一解决方案就是按照你的建议随后进行更新。