如何在插入时使用主键

时间:2012-06-15 13:56:22

标签: mysql insert primary-key

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

1 个答案:

答案 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的插入相同的语句中正确评估。如果是这种情况,我能想到的唯一解决方案就是按照你的建议随后进行更新。