插入具有递增值的数据

时间:2017-04-12 09:18:20

标签: sql sybase

我有这个表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'

1 个答案:

答案 0 :(得分:1)

处理此问题的正确方法是table2id定义为标识列。您可以在定义表时执行此操作:

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值。