Bugünkü yazımda
sizlere PRIMARY KEY, UNIQUE KEY ve FOREIGN KEY arasındaki farkları anlatmak
istiyorum. Biz Developerların en çok
araştırdıkları konulardan birisi bu üçü arasındaki farklardır.
PRIMARY KEY ve
UNIQUE KEY birbirlerine benzerler ve tanımlandıkları sütununda benzersizlik
sağlarlar.
PRIMARY KEY
- PRIMARY KEY bir NULL değer alamaz
- Bir tabloda sadece bir tane PRIMARY KEY olabilir.
- Default olarak PRIMARY KEY bir Cluster Indextir. Datalar tableda Cluster Indexe sıralanmış durumdadır.
- PRIMARY KEY diğer tablolardaki alanlarla FOREING KEY olarak ilişkilendirilebilir.
- PRIMARY KEY temporary table ve table variable içinde kullanabiliriz.
- PRIMARY KEY kolonunda otomatik artan identity set edilebilir.
- PRIMARY KEY diğer bir tablo ile FOREIGN KEY olarak ilişkilendirilmişse silinemez. Öncelikle
FOREIGN
KEY olan tablodan silmemiz gerekir.
UNIQUE KEY
- UNIQUE KEY bir defa olmak üzere NULL değeri alabilir.
- Bir tabloda birden fazla UNIQUE KEY olabilir.
- Default olarak UNIQUE KEY unique non-clustered indextir.
- UNIQUE KEY diğer tablolardaki alanlarla FOREING KEY olarak ilişkilendirilemez
FOREIGN KEY
- FOREIGN KEY başka bir tablodaki PRIMARY KEY alandır.
- Birden fazla NULL değer kabul edebilir.
- FOREIGN KEY otomatik olarak clustered or non-clustered index oluşturmaz. Manuel oluşturmamız gerekir.
- Bir tabloda birden fazla FOREIGN KEY olabilir.
- Temporary table veya table variable FOREIGN KEY barındıramaz.