2011-04-04 98 views
2

有谁知道是否可以在mysql表中获取字段的自动递增id并在同一插入中使用它?Mysql - 在实际插入时获取自动递增ID

这里假设新的ID将是2,被评估的声明将如下所示

“插入表(字段1)VALUES( '随机-2')”

我知道这可能会让我在代码中返回它并运行另一个插入,但我想知道在插入过程中是否有更快捷的方式“计算”这个值?

1以为我是 “插入到表(字段1)VALUES( '随机' +(选择MAX(ID)FROM表)+ 1)”

,但我很担心有多个刀片可能存在的问题发生在同一时间。

谢谢

+0

这是不可能的,这已被问过很多次。看看这个问题的权利,并遵循一些链接。 – RichardTheKiwi 2011-04-04 20:08:44

+0

[在当前INSERT查询中使用当前auto_increment值作为另一个字段的基础的可能的重复 - 这可能在MySQL?](http://stackoverflow.com/questions/767161/use-current-auto-increment-value- as-basis-for-another-field-in-the-same-insert-qu) – RichardTheKiwi 2011-04-04 20:09:05

+0

[mysql将相同的auto_increment值获取到另一个]可能的重复(http://stackoverflow.com/questions/4297462/mysql-getting -the-same-auto-increment-value-into-another) – 2011-04-04 20:13:14

回答

2

这是不可能的。之后你将不得不更新条目。

1

我担心在同一时间

这只是问题的一部分出现多个插件可能存在的问题 - 插入ID仅suposed是唯一的 - 不是连续的。

如果您希望在应用程序的单个调用中执行此操作,请使用存储过程来封装insert + update或使用触发器在插入时触发更新。或者使用序列发生器而不是自动增量。