Sql 使用新id值从另一个表复制数据
我有一个问题:我有三个表,Sql 使用新id值从另一个表复制数据,sql,Sql,我有一个问题:我有三个表,表a,表B和表C 表A是主表,其id列用表B和表C进行FK键控 我想从每个表中复制相同的数据,并将这些复制的行插入到其自己的表中,新id为表A 我们通常这样做 insert into table A (id, name, age) select name, age from table A 这里新行获得一个新id,因为id列是自动递增的 但是,当我们将表B的数据复制到表B本身时,我们如何从表A中指定新id???这里输入的是FK键 insert into tab
表a
,表B
和表C
表A
是主表,其id列用表B
和表C
进行FK键控
我想从每个表中复制相同的数据,并将这些复制的行插入到其自己的表中,新id为表A
我们通常这样做
insert into table A (id, name, age)
select name, age from table A
这里新行获得一个新id,因为id
列是自动递增的
但是,当我们将表B
的数据复制到表B
本身时,我们如何从表A
中指定新id???这里输入的是FK键
insert into table B (tab_B_Id, id, mark, subject)
select id, mark, subject
from tab B.
[id is the pk of `Table A` and FK to `Table B` and `Table C`]
INSERT
语句中使用子句对于问题1,这个如何:
insert into table B (tab_B_Id, mark, subject) select mark, subject from tab B
然后
但是我没有测试代码。可能有一些语法错误。
我不太理解你的问题2。
SCOPE\u IDENTITY
仅在插入一行时有效-它将返回范围中IDENTITY列的最后一个值;它不处理多个rowshi sakura的插入,谢谢回复。对于答案1,如何插入id值(表A-主表中的新id值)?您好,感谢您的回复。对于答案1,我将如何插入表A中的id值?主表A有一个id列,它包含一个主键并自动递增。此id在表B中被引用为FK。因此,当我们从表A复制2行并将复制的2行插入同一个表(即表A)时,将为复制的行插入新的id值。现在来看表B。当我们对表B做同样的事情时,我将如何将引用为FK的表A的id值插入表B??我的第二个问题是,没有指定select子句中的所有列名称,有什么方法可以做到吗?哦。。。“插入表B(id、标记、主题)从表A中选择id”如何?标记和主题应该是要插入的值。我假设tab_B_Id是表B中的一个PK,所以它应该是自动递增的,就像表a中的Id一样。
insert into table B(id) where tab_B_Id="THE ID VALUE THAT YOU GENERATED EARLIER" select id from table A