【问题标题】:How to lock auto_increment value?如何锁定 auto_increment 值?
【发布时间】:2015-06-16 10:07:31
【问题描述】:

我有一个返回下一个自增值 (id) 的查询,我在表 t_name 中插入数据时使用该值。

SELECT AUTO_INCREMENT id
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'db_name'
AND TABLE_NAME = 't_name'

但我希望这个查询每次都给出不同的值。例如。我和我的朋友同时在数据库中插入数据,所以我会得到一个 id,他会得到另一个。当我运行这个查询时,我希望它每次都给我一个不同的递增值。

有可能吗?还是我必须创建带有序列的表?

【问题讨论】:

  • 只要让数据库处理自动递增的 id 就可以了。
  • 在插入数据之前我需要那个 id。 Postgres 有序列,我需要类似的 im mysql
  • 将id列定义为auto_increment,插入时跳过。 dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html 为什么在插入之前需要 id?
  • 当然是自增,很明显。您是否在 Postgres 中使用过序列,因为我认为您不理解我的问题?
  • 我需要它,因为我不想使用 mysql_insert_id() 或 LAST_INSERT_ID() ...

标签: php mysql


【解决方案1】:

您可以插入并获取最后插入的 id:

    $connection  = mysqli_connect($rv, $username, $pass, $mydatabase);
    $result = $connection->query('INSERT INTO mytable (id, name) VALUES("", "myName")');
    if($result)
    {    $lastId = connection->insert_id;
         // so something with $lastId...
    }

【讨论】:

    猜你喜欢
    • 2018-04-28
    • 2021-12-04
    • 2012-04-02
    • 2011-04-29
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多