gpt4 book ai didi

sql-server - 如何将数据库的一行转换为两行

转载 作者:行者123 更新时间:2023-12-05 00:57:07 25 4
gpt4 key购买 nike

我有一个包含列 id、itemID 和 locationId 的表。

我现在已将一个 locationId 拆分为多个,因此我想:

更新 locationId 为 10 且有两行 locationId 设置为 11 和 12 的所有记录(两行的 ItemId 将相同)

所以开始我有:

Id ItemID LocationID
1 1 10

我想结束

Id ItemID LocationID
1 1 11
1 1 12

鉴于它一次更新和插入,是否有任何方便的方法来做到这一点

最佳答案

可能有一个语句可以做到这一点,但你为什么不只使用事务,一种与供应商无关的方式:

begin transaction;
insert into TBL (id,itemid,locationid)
select id, itemid, 11
from TBL
where locationid = 10;
update TBL
set locationid = 12
where locationid = 10;
commit transaction;

我总是倾向于在可能的情况下使用标准 SQL,以便能够轻松地在供应商之间切换,更不用说我已经十多年没有更换供应商了:-)

尽管如此,即使我从不使用它,拥有这种能力也很好(尽管有时出于性能原因,如果需要,我会选择特定于供应商的 - 我认为这对于这个特定用例没有必要,因为它可能不是什么东西你会做很多)。

关于sql-server - 如何将数据库的一行转换为两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305382/

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