SQL Server Unique Constraint Kullanımı
Herkese merhaba,
Bu yazıda sizlere SQL Server’da Unique Constraint kullanımından bahsedeceğim.
SQL Server’da Unique Constraint’ler kısaca NULL değer alabilen primary key constraintler olarak adlandırılırlar. Bir tabloda birden fazla olabilirler. Bir alanda aynı değerden tekrar girilmesini önlerler. Konu hakkındaki örneği aşağıda görebilirsiniz.
--Tablo oluşturduk CREATE TABLE Dusunenler ( DusunenID int, DusunenAd NVARCHAR(100), Dusunce nchar(20), CONSTRAINT PK_ID PRIMARY KEY (DusunenID), CONSTRAINT UK_DusunenAd UNIQUE (DusunenAd)) --Bir adet düşünce ekledik. INSERT INTO dbo.Dusunenler ( DusunenID, DusunenAd, Dusunce ) VALUES ( 1, -- DusunenID - int N'Yavuz Selim', -- DusunenAd - nvarchar(100) N'Birinci Düşüncem' -- Dusunce - nchar(20) ) --Bu kısmı eklemeyecektir. Çünkü Yavuz Selim'in bir tane düşüncesi vardır. INSERT INTO dbo.Dusunenler ( DusunenID, DusunenAd, Dusunce ) VALUES ( 2, -- DusunenID - int N'Yavuz Selim', -- DusunenAd - nvarchar(100) N'İkinci Düşüncem' -- Dusunce - nchar(20) ) --Düşünceleri listeledik SELECT * FROM dbo.Dusunenler
Burada Yavuz Selim’in iki adet düşünce girmesine müsade etmemiş olduk. Peki daha önceden oluşturulmuş bir tabloya Unique Constraint nasıl eklenir. Konu ile ilgili aşağıdaki örneği inceleyelim.
--Tablo oluşturduk CREATE TABLE Dusunenler ( DusunenID int, DusunenAd NVARCHAR(100), Dusunce nchar(20), CONSTRAINT PK_ID PRIMARY KEY (DusunenID)) --Unique Constraint Ekledik ALTER TABLE Dusunenler ADD CONSTRAINT UK_DusunenAd UNIQUE (DusunenAd) --Bir adet düşünce ekledik. INSERT INTO dbo.Dusunenler ( DusunenID, DusunenAd, Dusunce ) VALUES ( 1, -- DusunenID - int N'Yavuz Selim', -- DusunenAd - nvarchar(100) N'Birinci Düşüncem' -- Dusunce - nchar(20) ) --Bu kısmı eklemeyecektir. Çünkü Yavuz Selim'in bir tane düşüncesi vardır. INSERT INTO dbo.Dusunenler ( DusunenID, DusunenAd, Dusunce ) VALUES ( 2, -- DusunenID - int N'Yavuz Selim', -- DusunenAd - nvarchar(100) N'İkinci Düşüncem' -- Dusunce - nchar(20) ) --Düşünceleri listeledik SELECT * FROM dbo.Dusunenler
Daha önce Unique Constraint olmayan bir tabloya Unique Constraint ekleme işlemini yaptık. Sıra geldi tabloda var olan bir Unique Cosntraint alanını drop etmeye. Bu işlemin nasıl yapıldığını aşağıda görmektesiniz.
--Tablo oluşturduk CREATE TABLE Dusunenler ( DusunenID int, DusunenAd NVARCHAR(100), Dusunce nchar(20), CONSTRAINT PK_ID PRIMARY KEY (DusunenID), CONSTRAINT UK_DusunenAd UNIQUE (DusunenAd)) --Unique Constraint drop etme işlemi ALTER TABLE Dusunenler DROP CONSTRAINT UK_DusunenAd; --Bir adet düşünce ekledik. INSERT INTO dbo.Dusunenler ( DusunenID, DusunenAd, Dusunce ) VALUES ( 1, -- DusunenID - int N'Yavuz Selim', -- DusunenAd - nvarchar(100) N'Birinci Düşüncem' -- Dusunce - nchar(20) ) --Bu kısmı eklemeyecektir. Unique Constraint kalktığı için bu insert işlemini de yapacaktır. INSERT INTO dbo.Dusunenler ( DusunenID, DusunenAd, Dusunce ) VALUES ( 2, -- DusunenID - int N'Yavuz Selim', -- DusunenAd - nvarchar(100) N'İkinci Düşüncem' -- Dusunce - nchar(20) ) --Düşünceleri listeledik SELECT * FROM dbo.Dusunenler
Burada drop ettikten sonra aynı kişi iki düşünce rahatlıkla girecektir.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.