【问题标题】:MySQL and the chance of the wrong id being returned by LAST_INSERT_ID()MySQL 和 LAST_INSERT_ID() 返回错误 id 的可能性
【发布时间】:2011-08-20 13:04:54
【问题描述】:

从我读到的LAST_INSERT_ID() 检索要运行的最后一个插入语句的 id。如果最后一个插入语句在您的连接上运行,或者最后一个插入在数据库上运行所有连接?我想我想问的是:在一个繁忙的数据库驱动网站上,以下代码返回错误 id 的可能性有多大,是否有其他方法可以防止锁定数据库?

INSERT INTO example (string) VALUE ('something');
SELECT LAST_INSERT_ID();

PHP 的 mysql_insert_id() 会是更好的解决方案,还是我应该只查询刚刚插入的数据并以这种方式获取 id?

【问题讨论】:

    标签: mysql lastinsertid


    【解决方案1】:

    这是在您的连接上运行的最后一个插入语句还是...

    您的连接上的 last_insert。

    PHP 的 mysql_insert_id() 会是更好的解决方案吗

    不,是一样的。

    或者我应该只查询刚刚插入的数据并以这种方式获取 id?

    这样会慢一些

    链接:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

    引用该链接:

    生成的 ID 在每个连接的基础上在服务器中维护。这意味着函数返回给给定客户端的值是为影响该客户端的 AUTO_INCREMENT 列的最新语句生成的第一个 AUTO_INCREMENT 值。此值不受其他客户端的影响,即使它们生成自己的 AUTO_INCREMENT 值。这种行为确保每个客户端都可以检索自己的 ID,而不用担心其他客户端的活动,也不需要锁或事务。

    【讨论】:

    • 我很放松。谢谢
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    相关资源
    最近更新 更多