Sql 如何从另一个表中插入行并同时更新?
表A:Sql 如何从另一个表中插入行并同时更新?,sql,oracle,Sql,Oracle,表A: A|B|C|Version 1|2|3|1 1|2|3|2 我想要B桌 A|B|C|Version 1|2|3|2 除版本增加1外,每行与A相同。 假设我只想复制表A中version=1的行。 怎么做?用于复制+仅复制一个版本 INSERT INTO tableB ( A, B, C, Version) VALUES (SELECT * FROM tableA WHERE tableA.Version = 1); 会有用的。当然,由于WHERE子句将您限制为versi
A|B|C|Version
1|2|3|1
1|2|3|2
我想要B桌
A|B|C|Version
1|2|3|2
除版本增加1外,每行与A相同。
假设我只想复制表A中version=1的行。
怎么做?用于复制+仅复制一个版本
INSERT INTO tableB ( A, B, C, Version) VALUES
(SELECT * FROM tableA WHERE tableA.Version = 1);
会有用的。当然,由于WHERE子句将您限制为version=1的行,所以您可以在SELECT中使用硬编码的2
我已经知道了。但如果我想在这组值中增加1的版本呢?如果你不介意设置一个,我可以很快给你一个答案。我在设置sqlfiddle时遇到问题。。。Nvm然后如果你要插入。。。如果选择,将忽略VALUES子句。是否有主键?
INSERT INTO b( a, b, c, version )
SELECT a, b, c, version + 1
FROM a
WHERE version = 1
INSERT INTO b( a, b, c, version )
SELECT a, b, c, 2
FROM a
WHERE version = 1