2017-02-27 125 views
0

我有一个表列set_id有序列号,我打算在表中添加更多的记录。现在我该怎么做数字序列的自动增量?键列自动增量

示例:我现在最大为37,所以当我添加一条新记录时,我希望它从38开始等等,我该如何为它编写SQL查询?

insert into abc.data (set_id, set_cd, set_desc, type_cd, mgt_cd, mgt_desc, itm_cd, upd_dt, upd_by) 
values (38, 111, other, S, total, totalwww, 0000434, 27-feb-17, kiran) 

等..

我怎样才能增加至39 ...最大?

+1

我删除了不兼容的数据库标签。请标记您真正使用的数据库。 –

+0

您是否正在寻找自动增量列(SQL Server:'identity(1,1)'MySQL'AUTO_INCREMENT')的语法还是'identity insert' –

+0

Oracle SQl服务器 – kiran

回答

1

(你也标记了MySQL的)

对于SQL服务器:您可以使用set identity_insert ...

set identity_insert abc.data on; 

insert into abc.data 
    (set_id,set_cd,set_desc,type_cd,mgt_cd,mgt_desc,itm_cd,upd_dt,upd_by) 
values (38,111,other,S,total,totalwww,0000434,27-feb-17,kiran) 

set identity_insert abc.data off; 

或者只是没有插入该列,让identity处理:

insert into abc.data 
    (set_cd,set_desc,type_cd,mgt_cd,mgt_desc,itm_cd,upd_dt,upd_by) 
values (111,other,S,total,totalwww,0000434,27-feb-17,kiran) 

如果您使用的是sequence那么你可以使用next value for dbo.sequencename

insert into abc.data 
    (set_id,set_cd,set_desc,type_cd,mgt_cd,mgt_desc,itm_cd,upd_dt,upd_by) 
values (next value for dbo.mysequence,111,other,S,total,totalwww,0000434,27-feb-17,kiran)