检索插入行的索引

blc*_*llo 1 php mysql

我正在尝试为我正在开发的项目保留数据库表,并且正常化,但我遇到了一个问题.我试图找出如何在表中插入一行,然后找出auto_incremented id列的值设置为什么,以便我可以将其他数据插入另一个表.我知道有一些功能,例如mysql_insert_id"获取先前INSERT操作生成的ID".但是,如果我没有弄错,mysql_insert_id只返回最后一次操作的ID.因此,如果站点有足够的流量,则不一定会返回所需查询的ID,因为在插入行并查找ID之间可能会运行另一个查询.这种理解mysql_insert_id是否正确?任何有关如何做到这一点的建议都非常感谢.谢谢.

Qua*_*noi 5

LAST_INSERT_ID() 有会话范围.

它将返回当前会话中插入的标识值.

如果你没有在INSERT和之间插入任何行LAST_INSERT_ID,那么它将正常工作.

请注意,对于多个值插入,它将返回插入的第一行的标识,而不是最后一行:

INSERT
INTO    mytable (identity_column)
VALUES  (NULL)

SELECT  LAST_INSERT_ID()

--
1

INSERT
INTO    mytable (identity_column)
VALUES  (NULL), (NULL)

/* This inserts rows 2 and 3 */

SELECT  LAST_INSERT_ID()

--
2

/* But this returns 2, not 3 */
Run Code Online (Sandbox Code Playgroud)