gpt4 book ai didi

sql - 在mysql中手动生成int主键

转载 作者:行者123 更新时间:2023-11-29 03:59:15 24 4
gpt4 key购买 nike

使用 mysql 手动生成 int 主键的最佳方法是什么?

我不想使用自动增量功能。

我教过如何创建一个表,其中有一列名为序列的 int 类型。因此,每次我要插入一条新记录时,首先检查此列并将该值用作主键。然后在插入成功后增加序列的值。

这是一个好的方法吗?

最佳答案

创建一个包含 InnoDB 类型的 int 列的表:

CREATE TABLE key_table ( next_value INT NOT NULL DEFAULT 0 ) ENGINE=InnoDB;

然后,当您想要获取 key 的新值时,您必须启动一个事务(使用您正在使用的 API),然后:

SELECT next_value FROM key_table FOR UPDATE

然后读取返回的值,它是你的主键的值。然后在同一事务中增加值执行:

UPDATE key_table SET next_value = next_value + 1;

然后提交你的交易。

这将确保完全的一致性当且仅当您使用如上所述的事务并且您使用 InnoDB 表类型。

关于sql - 在mysql中手动生成int主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1655295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com