gpt4 book ai didi

mysql - 子查询结果可以过时吗?

转载 作者:行者123 更新时间:2023-11-28 23:20:57 25 4
gpt4 key购买 nike

我有一个查询,它使用子查询来确定要插入的行的 ID。目标是将每个新行递增到 1000 的下一个倍数,从而在 ID 之间留出很大的差距。子查询返回的 id 是否可能已经被另一个并发进程占用?或者这个子查询是否保证产生一个唯一的 ID,就好像它是自动递增的一样?

INSERT INTO `table`
SET id = (
SELECT x.max_id
FROM (
SELECT MAX(id) + 1000 as max_id
FROM `table`
WHERE id LIKE '%000'
) as x
)

最佳答案

如果您这样做只是为了设置 ID 之间的间隔,您应该改用:

SET @@auto_increment_increment=1000;

这将确保后续的自动增量值相隔 1000 个数字。这是引擎级别的强制执行,因此您不必担心竞争条件。

更多信息在这里: https://dev.mysql.com/doc/refman/5.6/en/replication-options-master.html#sysvar_auto_increment_increment

关于mysql - 子查询结果可以过时吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41604973/

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