我有一个包含四个字段id,代码,国家,价格的数据库。我想复制一个产品并增加其价格。
示例:对于对象(1,'玩具','我们', 100),我想得到一个价格为 +10 (2,'玩具','我们',110)的新对象。
像这样:
INSERT INTO Table
( ID
....,
Price
)
(SELECT ID
....,
Price+10)
可能吗?谢谢
如果满足以下条件之一,则可以执行此操作:
-
ID
是IDENTITY
列,或 - 您可以创建一个公式,用于生成要插入的列的
ID
,给定原始列的ID
。
对于IDENTITY
列解决方案,请从 INSERT
语句中省略 ID,如下所示:
INSERT INTO MyTable
( ..., Price
)
(SELECT ..., Price+10)
对于基于公式的解决方案,请为ID
添加一个公式:
INSERT INTO MyTable
(ID, ..., Price
) -- The formula for the new ID below is NewID = 10000+OldID
(SELECT ID+10000, ..., Price+10)
是的,您可以在INSERT INTO
语句中使用SELECT
:
INSERT INTO Table(ID,..., Price)
SELECT 2, ..., Price+10
WHERE ID = 1