Tabloda unique bir alana ihtiyaç duyduğumuz da 12c öncesinde bu sorunu sequence kullanarak çözüyorduk. 12c ile birlikte identity olarak tanımlayabileceğimiz ve otomatik olarak bu unique değeri oracle’ ın kendisinin vermesini sağlayabileceğimiz bir kolon tipi getirildi.
Öncelikle 12c öncesindeki durumu simüle edelim, sonrasında 12c versiyonunda bu işi nasıl yapabiliyoruz ona bakalım.
Öncelikle testimiz de kullanacağımız numaratörümüzü create edelim.
1 2 3 4 5 |
===> CREATE SEQUENCE kamil.testseq1 MINVALUE 1 MAXVALUE 99999999 START WITH 1 INCREMENT BY 1 Sequence created. |
Test tablomuzu create edelim;
1 2 |
===> create table kamil.testtable (id number, name varchar2(5)) Table created. |
Oluşturduğumuz sequence’ i kullanarak tablomuzu kayıt atalım;
1 2 3 4 5 6 7 8 9 10 11 12 13 |
===> INSERT INTO kamil.testtable (id, name) VALUES (kamil.testseq1.NEXTVAL, 'test1') 1 row created. ===> INSERT INTO kamil.testtable (id, name) VALUES (kamil.testseq1.NEXTVAL, 'test2') 1 row created. ===> INSERT INTO kamil.testtable (id, name) VALUES (kamil.testseq1.NEXTVAL, 'test3') 1 row created. ===> INSERT INTO kamil.testtable (id, name) VALUES (kamil.testseq1.NEXTVAL, 'test4') 1 row created. ===> INSERT INTO kamil.testtable (id, name) VALUES (kamil.testseq1.NEXTVAL, 'tes5') 1 row created. ===> commit Commit complete. |