我的数据库中有一个新列,我需要用一个特定行中同一列的值填充它。我想创建一个功能“复制到所有人”
例如,将相同的价格添加到从第一行获取的所有产品:
ID NAME PRICE
1 PROD1 5
2 PROD2 0
3 PROD3 0
4 PROD4 0
我试图选择第一行(id 1)的价格并将其复制到所有其他行。
我试过:
UPDATE PRODUCTS SET PRICE = (select PRICE from PRODUCTS where ID = 1);
我想以这个结束
ID NAME PRICE
1 PROD1 5
2 PROD2 5
3 PROD3 5
4 PROD4 5
但我有个错误:
Table 'PRODUCTS' is specified twice,
both as a target for 'UPDATE' and as a separate source for data
我试着分别指定每个表
UPDATE PRODUCTS as a SET a.PRICE = (select b.PRICE from PRODUCTS as b where b.ID = 1);
但我也犯了同样的错误。
Table 'a' is specified twice,
both as a target for 'UPDATE' and as a separate source for data
也许我需要创建一个临时表并从中复制?
有什么关于如何做到这一点的提示吗?
谢谢。