插入表时,我可以获得自动递增的主索引的值吗?

Posted

技术标签:

【中文标题】插入表时,我可以获得自动递增的主索引的值吗?【英文标题】:When INSERTing into a table can I get the value of the automatically incremented primary index? 【发布时间】:2010-11-13 13:49:39 【问题描述】:

我正在向表中插入一行,并希望获取自动递增的主索引的值。

主索引是表中唯一的唯一值,因此我不想执行类似“SELECT [primary index] FROM [table] WHERE [the columns = the data I just inserted]”之类的操作,以防止歧义。我也不想选择最后一行,因为我的 INSERT 和 SELECT 语句之间可能已经插入了一行。

我可以插入一个空行,选择主索引并使用数据更新该行,但这似乎是一个非常丑陋的黑客行为。这让我相信他们必须是一种方法来获取您刚刚通过 mysqli API 插入的行的主索引,因为我认为这将是非常普遍的事情。

谁能启发我?

【问题讨论】:

【参考方案1】:

mysql_insert_id() 是你的答案。

你也用“mysqli”标记了你的问题,在这种情况下你会使用mysqli->insert_id()。

【讨论】:

在我用谷歌搜索并写下你已经在那里得到的答案的时候。如果我一开始就知道 php,我想我会赢的。

以上是关于插入表时,我可以获得自动递增的主索引的值吗?的主要内容,如果未能解决你的问题,请参考以下文章

如果我的主键不自动递增,如何使用 PHP 获取最后插入的 ID

每个 MySQL 表都应该有一个自动递增的主键吗?

mysql数据库中自动增长的主键也可以手动插入值吗

SQLSERVER如何使用递增排序的GUID做主键

phpmyadmin 自动递增主键行为奇怪

2-4 递增链表的插入