首页 文章

键列自动递增[重复]

提问于
浏览
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 回答

  • 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)
    

相关问题