oracle auto-increment sorunsalı
Oracle ile tek taraflı sevişme olayım devam etmekte ve her gün "ohaaa!", "hadi canımmm!" şeklindeki nidalarım ofisin çeşitli noktalarından duyulmakta.
Bu tepkiye neden olan olaylardan birisi de geçenlerde oracle da bir tablodan data silmek için uniqe ve auto-incerement bir id'ye ihtiyaç duymamdı.
Bunu database yöneticimize söylediğimde oracle tablolarında auto-increment bir yapının bulunmadığını öğrendim. Bunun yerine sequences denen hede'nin bulunmakta. Bu arkadaş kendini tekrar etmeyen, unique ve auto-increment id'ler üretmekte. İlk olarak sqldeveloper'ın ilgili shema altında sequence kısmından bir sequences tablosu oluşturuyorsun. Başlangıç ve artış değerlerini vermeye dikkat edin. Insert ya da update işlemlerinde RESERVE_SEQ.NEXTVAL (sequences tablosunun ismi RESERVE_SEQ olsun) şeklinde havuzdan sıradaki id'yi çekiyorsun ve gerekli işlemleri yapıyorsun.
insert için örnek :
INSERT INTO TABLO (ID,KELIME) VALUES(RESERVE_SEQ.NEXTVAL,'$Kelime');
update için örnek :
UPDATE TABLO SET ID=RESERVE_SEQ.NEXTVAL WHERE ID='$Id';
Comments(1)