Sürekli yeni tablo açmayınca insan unutuyor. Geçen gün yine hatırlayamadım, tırmalamaktansa buraya yazayım dedim.

Microsoft SQL Server dabu işlem ne kadar kolay sa Oracle da o kadar zor. Sql Server Management Studio da "Databases" altında açmak istedigimiz VT yi seçip, sag tıklayıp "New Tablo" dedikten sonra, istedigimiz kolonun adını yazıp mesela ID "Data Type"ını "int" yapıp, sag tıklayıp  "Set Primary Key" deriz ve "Column Properties" den "Identity Specification" da "(Is Identity)"i "Yes" yapar ve "Kaydet" deriz bu kadar 

 

 


Ama Oracle da işler biraz farklı. En azından bu kadar kolay degil. Bir kolonu her primary key olarak ayarlıyayım hemde otomatik artsın istiyorsanız.

Yapmanız gerekenler şunlar : 

1- Tablonuzda otomatik artmasını istediginiz ID kolonunu yaratın ve primary key olarak ayarlayın.

2- Bir sequence yaratmamız gerekiyor. 

create sequence SiparisID_seq
start with 1
increment by 1
nomaxvalue;
 

3- Şimdi tablonuz için bir trigger yaratıyoruz. Before Insert Triggeri 

  CREATE OR REPLACE TRIGGER "HASTANE"."SIPARIS_BEF_INS"
BEFORE INSERT ON HASTANE.SIPARIS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
begin
  if inserting then if :NEW."SiparisID" is null then
     select SiparisID_seq.nextval into :NEW."SiparisID" from dual;
  end if;
end if;
end;
 
ALTER TRIGGER "HASTANE"."SIPARIS_BEF_INS" ENABLE;

İşte bu kadar. Artık "SIPARIS" tablosunda, auto increment hemde Primary Key olan "SiparisID" kolonumuz var. Ve otomatik bir bir artan bir şekilde.