Merhaba arkadaşlar! Veritabanı ile uğraşanlar bilirler. Sql Server ve Access gibi veritabanı programlarında bir unique veya primary key olan sütunun içindeki değerin otomatik artmasını kolaylıkla sağlayabiliriz. Örneğin Sql Server içinde otomatik artan değerli bir sütun oluşturmak için ilgili sütunun Identity Specification özelliğini yes yapmak yeterlidir. Fakat Oracle içinde otomatik artan bir sütun yapmak için bu tür seçim yapılabilen bir kısım yoktur. Bu sebeble Oracle’de otomatik artan bir sütun oluşturmak için öncelikle bir Sequence tanımlanır. Ardından da bir trigger içerisinde bu sequence’yi kullanarak otomatik artan bir sütun yaparız. Şimdi gelin bu işi nasıl yapacağımızı görelim.
Örneğin Oracle’de Kullanıcı isimli bir tablomuzun içindeki Kullanıcı_Id sütununu otomatik artan yapmak istediğimizi düşünürsek öncelikle aşağıdaki gibi bir Sequence yazmamız gerekir.
CREATE SEQUENCE SEQ_KULLANICIID
START WITH 1
INCREMENT BY 1;
SEQ_KULLANICIID isimli bir sequence oluşturduk. Bu sequence 1’den başlayacak ve birer birer artacak. Şimdi de aşağıdaki gibi bir trigger yani tetikleyici yazalım.
CREATE OR REPLACE TRIGGER TBI_KULLANICIID
BEFORE INSERT ON TBL_KULLANICI
FOR EACH ROW
BEGIN
SELECT SEQ_KULLANICIID.NEXTVAL INTO:NEW.KULLANICI_ID FROM DUAL;
END;
Oluşturmuş olduğum trigger’a TBI_KULLANICIID adını verdim. TBL_KULLANICI isimli tabloma bir kayıt eklemeden önce her bir satır için az once oluşturduğumuz sequence’yi çalıştırır.Her yeni kullanıcı_id için sequence yardımıyla değer bir artar. Bu şekilde oracle içinde otomatik artan bir sütun oluşturulmuş olur. Oracle ile uğraşmaya başlayacaklar için gerekli bir bilgi olduğunu düşündüğümden paylaşmak istedim. Bir sonraki makalemde görüşmek dileğiyle.
Görkem Sezgin.