2017-02-27 3 views
0

Ich habe eine Tabelle mit einer Spalte set_id hat Sequenznummer drin, ich plane, ein paar weitere Datensätze in die Tabelle aufzunehmen. Nun, wie mache ich das automatische Inkrementieren der Sequenz der Nummer?Schlüssel Spalte Auto Inkrement

Beispiel: Ich habe das Maximum als 37 jetzt, also wenn ich einen neuen Datensatz hinzufügen möchte ich es von 38 beginnen usw., wie schreibe ich eine SQL-Abfrage dafür?

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) 

und so weiter ..

Wie kann ich bis 39 ... max erhöhen?

+1

Ich entfernte die inkompatible Datenbank-Tags. Bitte markieren Sie die Datenbank, die Sie wirklich verwenden. –

+0

Es ist nicht klar, ob Sie nach der Syntax einer Autoinkrementspalte suchen (SQL Server: 'identity (1,1)' MySQL 'AUTO_INCREMENT') oder für die 'identity insert' –

+0

Oracle SQl Server – kiran

Antwort

1

(Sie haben auch mysql getaggt)

Für SQL-Server: Sie 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; 

Oder legen Sie einfach nicht in dieser Spalte verwenden können und lassen Sie identity handle es:

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) 

Wenn Sie eine sequence verwenden, dann können Sie next value for dbo.sequencename verwenden:

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)