gpt4 book ai didi

sql-server - 带有子查询的 INSERT 的原子性

转载 作者:行者123 更新时间:2023-12-02 00:17:34 30 4
gpt4 key购买 nike

假设

CREATE TABLE TableA
(
IntColumn INT NOT NULL PRIMARY KEY
)
INSERT INTO TableA VALUES (0)

下面是原子的吗?即,如果多个应用程序线程执行以下操作,我是否有最终违反 PK 的风险?

INSERT INTO TableA
VALUES ((SELECT MAX(IntColumn) FROM TableA) + 1)

你能给我指点有关这方面的任何文档吗?我的 google-fu 失败了...

[我知道自动递增的列,但这对我实际做的事情来说还不够。]

最佳答案

This answer显示所需的锁定提示:

INSERT INTO TableA
WITH (TABLOCKX,HOLDLOCK) -- added
VALUES ((SELECT MAX(IntColumn) FROM TableA) + 1)

Adam's utility 中尝试过它正在运行。

关于sql-server - 带有子查询的 INSERT 的原子性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12397224/

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