键列自动增量

时间:2017-02-27 20:36:40

标签: sql oracle

我有一个列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 :(得分:1)

(你还标记了mysql)

对于 sql-server :您可以使用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)