gpt4 book ai didi

SQL - 使用更新的标识种子在另一个插入中插入查询

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

我有 2 张 table T1 和 T2

T1 有 10 个具有主键的唯一记录(身份种子)
T2 对 T1 中的每条记录都有多个带有外键的整数

T1 有 2 列:主键 - 数据
T2 有 2 列:PrimaryKey - FoeignKey(这个 FK 是 T1 的主键)

我需要编写一个查询,该查询将从 T1 中选择所有记录并将新条目插入到自身中,即 T1,具有相同的数据,并且由于 T1 上的 PK 是身份种子,因此只要这个新 ID,它就会自动生成一个新 ID生成我需要用这个新身份加入 T2 和插入新的相关记录。

我知道这会复制数据,这不是问题,这是一次性事务,因此查询不需要高效,但请不要使用游标,最好是使用 SELECT 和 INSERTS 来实现,而无需使用循环外部变量!
谢谢 !!

更新:如果 T1 中有一个条目并不总是表明在表 T2 中必须有一个/多个相应的条目。

附注我使用 SQL Server 2005

最佳答案

假设 T2 上的主键也是 IDENTITY,使用:

-- Populate T1
INSERT INTO T1
SELECT data
FROM T1

-- Populate T2 with T1 values
INSERT INTO T2
SELECT primary_key
FROM T1 x
WHERE EXISTS(SELECT NULL
FROM T2 y
JOIN T1 z ON z.primary_key = y.foreign_key
WHERE z.data = x.data
AND z.primary_key != x.primary_key)

关于SQL - 使用更新的标识种子在另一个插入中插入查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887466/

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