我有这个表tab1
name
-----
'big'
'smal'
'bird'
tab2
id name
-- ---
1 empty
2 empty
3 empty
4 empty
我想将tab1中的名称插入tab2,并增加id 这是理想的结果
id name
-- ---
1 empty
2 empty
3 empty
4 empty
5 'big'
6 'smal'
7 'bird'
答案 0 :(得分:1)
处理此问题的正确方法是table2
将id
定义为标识列。您可以在定义表时执行此操作:
create table table2 (
id int identity primary key,
. . .
然后你就可以做到:
insert into table2(name)
select name
from table1;
如果不正确,您应该考虑正确定义表格。但是,您也可以在更新版本的Sybase中执行此操作:
insert into table2(name)
select maxid + row_number() over (order by name), name
from table1 cross join
(select max(id) as maxid from table2) x;
注意:这将按字母顺序分配id值。