Anasayfa / Yazılım / SQL / UNIQUE Constraint Kullanımı

UNIQUE Constraint Kullanımı

MS-SQL’de oluşturmuş olduğumuz tablolar içinde yer alan her bir kolonda eşsiz şekilde, yani benzersiz birbirinden farklı veriler bulunmasını isteyebiliriz. Bunun için UNIQUE deyimini kullanırız. Aynı Primary Key mantığı gibidir ama primary keyden tek farklı unique kolonlar null veriler de içerebilir. Primary Key kolonlarda mutlaka veri olmalıdır. Tek bir kolona UNIQUE kısıtlaması verilebildiği gibi, birden fazla kolona da UNIQUE kısıtlaması verebiliriz. Ayrıca tablolarımızı oluştururken UNIQUE kısıtlaması yapabildiğimiz gibi, daha sonradan var olan tablolar üzerinde de UNIQUE kısıtlaması yapabiliriz. Aşağıda örnek syntaxları veriyorum.

Yeni bir tablo oluşturulması esnasında tek bir kolona (her biri ayrı kolon) UNIQUE constraint ekleme:

CREATE TABLE ( UNIQUE, UNIQUE)

Burada farklı şekilde birbirinden bağımsız olarak kolon1 ve kolon2’ye UNIQUE constraint ekliyoruz. Burada herhangi bir constraint adı vermeden syntax verdim, bu gibi bir durumda SQL Server kendisi bir ad atamaktadır.


Yeni bir tablo oluşturulması esnasında birden fazla kolona kombine (aynı kısıtlama) UNIQUE constraint ekleme:

CREATE TABLE ( , ,
CONSTRAINT UNIQUE (,
ALTER ile birlikte kullanımı:

CREATE TABLE ( , )
ALTER TABLE ADD CONSTRAINT UNIQUE (,2014051901

Birde kombine UNIQUE tanımlayalım.

Mevcut tabloyu siliyorum.

DROP TABLE tablo1

Kombine bir UNIQUE olacak şekilde yine tablo oluşturuyorum.

CREATE TABLE tablo1 (Ad VARCHAR(20), Soyad VARCHAR(20) 
CONSTRAINT Kontrol UNIQUE (Ad, Soyad));

Tablomuz oluşturuldu. Şimdi veri girişi yapıyorum.

INSERT INTO tablo1 VALUES('ismail','gürsoy');

Verimi kaydettim. Alttaki gibi bir veri giriyorum.

INSERT INTO tablo1 VALUES('ismail','hakkı');

Bunda da problem yok. Bir de soyad aynı olan veri girelim.

INSERT INTO tablo1 VALUES('hasan','gürsoy');

Bu veri de kaydedilir. Peki yine ad kolonuna ismail soyad kolonuna gürsoy verisi girelim.

INSERT INTO tablo1 VALUES('ismail','gürsoy');

Bu sefer hata alırım, çünkü her iki kolonu da kontrol ediyorum ve aynı şekilde girilmiş bir veri daha önceden mevcut dolayısı ile kayıt gerçekleşmez. Yani kombine UNIQUE ile birden fazla kolon üzerinde kontrol gerçekleştirebiliyorum. Son durum aşağıdaki gibi.

SELECT * FROM tablo1;

2014051902

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir