【问题标题】:Getting last inserted UniqueId from MySQL从 MySQL 获取最后插入的 UniqueId
【发布时间】:2013-11-20 20:39:52
【问题描述】:

我正在插入记录,主键是PHP创建的uniqueId。

如何从 MySQL 中检索最后插入的 uniqueId?

Tnx

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    如果它是一个 auto_incremented 值,您将在插入后立即使用mysql_insert_id()(或其mysqli sibling)以获取分配给它的 ID。

    如果您想获得一个非自动递增的值,您需要选择具有最高值的行并按该值按降序排序以完成这项工作(假设它是数字或字母数字并按顺序递增):

    SELECT id FROM tablename ORDER id DESC LIMIT 1
    

    如果是随机 ID,则需要按日期排序:

    SELECT id FROM tablename ORDER datecol DESC LIMIT 1
    

    如果您没有任何其他方法对这些记录进行排序,您可以获得表中的最后一行,但不能保证记录是最新的,因此您的结果不准确。

    【讨论】:

    • 我明白了.. 我希望有一个类似 postgreSQL 的解决方案(返回).. 但是如果有人在 INSERT 和 SELECT LAST 之间进行查询,您的解决方案将会失败
    • 切换到PDO,你甚至可以获得Oracle解决方案。
    • 呵呵,这是 PDO ...在没有自动增量行的表上没有返回 lastInsertId 值.. sux
    猜你喜欢
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2017-10-14
    相关资源
    最近更新 更多