SQL AUTO INCREMENT (Otomatik Artan Numara)

Hiç yorum yok
SQL AUTO INCREMENT (Otomatik Artan Numara)
Tablomuza her kayıt eklendiğinde bir alanda bulunan değerin benzersiz olmasını ve otomatik olarak artmasını isteyebiliriz. Daha çok kayıtlarımız için bir id numarası alanı kullanıyorsak, auto increment kullanılır. Sadece sayısal alalarda kullanılır.

Otomatik numara artışı olan bir alana yazdığımız program üzerinden değer göndermeyiz. Gönderdiğimiz takdirde hata alırız. Kayıt ekleme örneği:
INSERT INTO Personel (adi,soyadi) VALUES ('Salih','ESKİOĞLU')

Burada görüldüğü gibi id alanı hiç kullanılmadı. Veritabanımıza kayıt eklenirken id alanına numara otomatik olarak verilecektir.
Yani INSERT INTO Personel (id,adi,soyadi) VALUES (5,'Salih','ESKİOĞLU') şeklinde yazarsak hata alırız.

Tablomuzu oluştururken ilgili alana kriter olarak tanımlanır. Farklı veritabanlarında kullanım biçimi değişiktir.


MySQL kullanım biçimine örnek:
CREATE TABLE  Personel
(
id int NOT NULL AUTO_INCREMENT,
adi varchar(10),
soyadi varchar(10),
PRIMERY KEY (id)
)

AUTO_INCREMENT ifadesi ile id alanına 1 'den başlayarak her seferde bir sayı aotomatik artan numara eklenmesi sağlanabilir. Eğer ilk başlangıç değerinin 100 olmasını istiyorsak ilgili satırı söyle yazmamız gerekir:

id int NOT NULL AUTO_INCREMENT=100
SQL Server kullanım biçimine örnek:
CREATE TABLE  Personel
(
id int IDENTITY(1,1) PRIMARY KEY,
adi varchar(10),
soyadi varchar(10)
)
SQL Server tarafında IDENTITY kelimesi kullanılır. Parantezin içindeki birinci rakam başlama değerini, ikinci rakam ise artış miktarını belirler. Bu örnekte ilk numara 1 'den başlayacaktır ve her kayıt eklendiğinde id alanı bir numara artacaktır. Eğer ilk kayıt numarasını 50'den başlamasını ve 5 farkla eklenmesini istersek IDENTITY(50,5) yazmamız yeterli olacaktır.

MS Access kullanım biçimine örnek:
CREATE TABLE  Personel
(
id integer PRIMARY KEY AUTOINCREMENT,
adi Text,
soyadi Text
)
Access veritabanlarında AUTOINCEMENT kelimesi kullanılır. Varsayılan olarak 1 'den başlar ve her kayıt için 1 numara artarak gider. AUTOINCREMENT(500,5) ile ilk kayıt numarası 500 olur ve eklenen her kayıt için üzerinde 5 eklenerek gider.
 
ORACLE kullanım biçimine örnek:
CREATE Sequence otomatik_artis
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
)

Görüldüğü üzere Oracle veritbanlarında durum biraz farklı. Önce tablomuzu oluşturuyor. Tablomuzu oluşturduktan sonra Create Squence ile otomatik artış tanımı yapıyoruz. Burada yazılan otomatik_artis ifadesi tablomuzda yeni bir alan oluşturmaz. Bu bir tanımdır. Oluşturduğumuz bu tanımı tablomuzda birden fazla alanda kullanabiliriz.

Burada;
MINVALUE 1 ile alanın alabileceği en düşük değer belirtilir.
STARVALUE WITH 1 ile kaydın başlaam değer belirtilir.
INCREMENT BY 1 ile artış değeri belirtilmiştir.
CACHE 10 ile veritabanı performansını arttırmak için sonraki verilecek 10 numarayı hafızaya alır ve yeni kayıt eklenirken veritabanına bakıp sonr numarayı arttırmak yerine hafızadan sıradaki numarayı otomatik olarak verir. Özellikle artış değeri 1 olmayann durumlarda performansı arttırır.

Kayıt giriş örneği:
INSERT INTO Personel (ID,Adi,calistigi_ay_sayisi) VALUES(otomatik_artis.nextval,'Salih',otomatik_artis.nextval)

bu örnekte görüleceği üzere diğer veritabanlarından farklı olarak ID alanıda yazılmıştır. Otomatik_artis.nextval ile id alanına otomatik sayı artışı uygulanmıştır. Ayrıca calistigi_ay_sayisi alanına da aynı tanım uygulanmıştır. Neticede dönemsel çalışan bir personelimiz varsa en son kayda bakarak toplam kaç ay çalıştığını öğrenebiliriz.

Hiç yorum yok :

Yorum Gönder