SQL DEFAULT Kullanımı
DEFAULT kriteri ile oluşturduğumuz tabloda bir alanın değeri eğer kullanıcı
tarafından boş olarak geçilirse, sistemin o alana otomatik olarak bir değer
atamasını sağlayabiliriz. Böylece verilerimizin bütünlüğü sağlanmış olacağı gibi
ileride geliştireceğimiz uygulamalarda hata ile karşılaşma ihtimalimizde
düşecektir.
DEFAULT Kullanım Biçimi
CREATE TABLE Kargo
(
id int,
adi_soyadi varchar(20) ,
adres varchar(20),
odeme_tipi varchar(25) DEFAULT 'Ücret Alıcı'
) |
Yukarıdaki örnekte kargo takibi yapmak üzere Kargo isminde bir tablo
oluşturulmuştur. Eğer yeni bir kargo takip kaydı girilirken odeme_tipi bilgisi
boş geçilirse otomatik olarak ilgili alana 'Ücret Alıcı' ifadesi yazılacaktır.
DEFAULT kriteri ile sadece belirleyeceğimiz bir veri değil, sistem verileride
kullanılabilir.
CREATE TABLE Kargo
(
id int,
adi_soyadi varchar(20) ,
adres varchar(20),
kayit_tarihi date DEFAULT getdate()
) |
Görüldüğü gibi kayit_tarihi alanına eğer bir değer belirtmezsek, otomatik
oalrak günün tarihini atacaktır. Buradaki getdate() ile günü tarihi
bilgisi elde edilmektedir.
Yuakrıdaki örnekler hep yeni bir veritabanı oluşturuken kullanılan
örneklerdir. Ancak var olan bir veritabanında bir alanı DEFAULT yapmak istersek
ALTER yapısını kullanmamız gerekir.
MySQL veritabanlarında kullanım biçimine örnek:
ALTER TABLE Kargo
ADD odeme_bilgisi SET DEFAULT 'Ücret Alıcı' |
SQL Server / MS Acess veritabanlarında kullanım biçimine örnek:
ALTER TABLE Kargo
ADD
COLUMN odeme_bilgisi
SET DEFAULT 'Ücret Alıcı' |
Oracle veritabanlarında kullanım biçimine örnek:
ALTER TABLE Kargo
MODIFY odeme_bilgisi DEFAULT 'Ücret Alıcı' |
Eğer DEFAULT olarak kriterlendirilmiş alanı normale çevirmek istersek DROP
ifadesini kullanmamız gerekir.
SQL Server / Oracle / MS Acess ortamlarında DEFAULT yapısını kaldırmak:
ALTER TABLE Kargo
ALTER COLUMN odeme_bilgisi
DROP DEFAULT |
MySQL ortamlarında UNIQUE yapısını kaldırmak:
ALTER TABLE Kargo
ALTER COLUMN odeme_bilgisi
DROP DEFAULT |
Burada dikkat edilmesi gereken nokta iki tane ALTER ifadesinin
kullanılmasıdır. Yani ALTER TABLE Kargo DROP odeme_bilgisi DEFAULT kullanımı
yanlış olacaktır. Çünkü normal şartlarda direk olarak DROP yazılırsa belirtilen
alan tablodan silinir. Bunun için iki defa ALTER kullanılmıştır.