Alfabetik Sıralama :
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L
- M
- N
- O
- P
- Q
- R
- S
- T
- U
- V
- W
- X
- Y
- Z
-
Oracle Database üzerinde ID olarak kullanmak istediğiniz bir alana diğer db sistemleri gibi (Access,MySQL,SQLServer vs..) gibi Auto Increment bir özellik veremiyorsunuz.Bu iş biraz daha komplex olarak gerçekleşiyor.Bir table ın auto increment alana sahip olması için öncelikle SEQUENCE lerden faydalanıyoruz.SEQUENCE ler kendi içlerinde increment işlemi gerçekleştiriyorlar.
SEQUENCE oluşturcağınız zaman Değerleri olarak ihtiyacınız olan parametreleri girebilirsiniz ki default gelen ayarlar auto increment için çok uygundur.
Belirtmemiz gereken değerler
Minimum : Bu SQUENCE in tutacağı minimum değerdir.Default değer 1 dir Maximum : Bu ise alabileceği maksimum değeri ifade eder. Default değer 1.0E28 Yaklaşık 9.999.999.999.999.999.999.999.999.999 (yani baya baya büyük) gibi bişi yapıyor :)
Interval: Default değeri bir olup SQUENCE in kendi içinde count değeridir.Bu değere göre bir bir artacaktır.
SEQUENCE mizi kaydediyoruz.
Bu işlemden sonra Auto Increment alan için tablomuza ait bir trigger (tetikleyici) oluşturmamız gerek.Bu triggerın görevi her bir insert işleminde yazdığımız SEQUENCE i tetiklemek ve onun count değerini ID alanına atamak.
BEGIN select "ORNEK_SCHEMA"."SEQ_ORNEK".nextval into :new.ID from dual ; END;
Bu trigger´a bir "Event" (Olay) atamamız gerekecek onuda TRIGGER oluşturduğumuz pencerede Event tabından gerçekleştiriyoruz.İstediğimiz işlem tabloya girecek her kayıt için ID artırmak olduğu için Insert Event´ına TRIGGERımızı atıyoruz.
Deneme olarak tablonuza bir kayıt atarsanız ID nin otomatik olarak SEQUNCE´ın tuttuğu son değeri aldığını göreceksiniz.
Tek bir SEQUENCE ile birden fazla tabloya ID ataması yapabilirsiniz ancak SEQUENCE kendi iç sayısını tutar.Yani Tablodaki son ID değeri+1 gibi bir işlem gerçekleştirmez bu nedenle farklı tabloarda birbirini tekrar eden ID değerleri göremezsiniz.Her bir tablo için farklı SEQUENCE lar oluşturabilirsiniz.