gpt4 book ai didi

sql - 使用增量主键sql插入多行

转载 作者:行者123 更新时间:2023-12-04 14:16:06 25 4
gpt4 key购买 nike

INSERT INTO TABLE1 (COLUMN1, PRIMARY_KEY)
SELECT
COLUMN1,
(SELECT COALESCE(MAX(PRIMARY_KEY), 0)
FROM TABLE1) + 1
FROM
TABLE2

错误:

Violation of Primary Key constraint. Cannot insert duplicate key in object.



如何在第一行之后增加主键?

我希望能够同时向该表添加项目列表,而不是将它们插入 RBAR。

谢谢您的帮助

最佳答案

INSERT INTO TABLE1 (COLUMN1, PRIMARY_KEY)
SELECT COLUMN1,
(SELECT COALESCE(MAX(PRIMARY_KEY),0)
FROM TABLE1) + row_number() over (order by 1/0)
FROM TABLE 2

仅对于此语句,ID 将是连续的,例如如果 Max(Primary Key) 是 99 并且它插入 4 条记录,它们将是 100、101、102、103。如果多个进程同时插入,很容易违反约束,但这并不是说它比你的更糟糕无论如何使用 MAX() 有一条记录,这本质上是不安全的。

关于sql - 使用增量主键sql插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13845791/

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