Sql 如何从另一个表中插入行并同时更新?

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:

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