Postgres'te NOT NULL Kısıtlamasını kaldırın

Postgres Te Not Null Kisitlamasini Kaldirin



PostgreSQL gibi ilişkisel veritabanlarında kısıtlamalar, veri bütünlüğünün korunmasında ve tablo sütunlarında belirli kuralların uygulanmasında çok önemlidir. Böyle bir kısıtlama “NOT NULL” kısıtlamasıdır. Bu öğreticide, NOT NULL kısıtlaması kavramını keşfedeceğiz ve PostgreSQL'de kısıtlama oluşturma ve kaldırma konusunda adım adım bir kılavuz sağlayacağız.

NOT NULL Kısıtlaması Nedir?

NOT NULL kısıtlaması, bir sütunun, tablodaki her satırın söz konusu sütun için boş olmayan bir değere sahip olmasını gerektiren boş değerler içermemesini sağlar.

Eğitim Gereksinimleri:

Bu gönderide sağlanan talimatları takip etmek için aşağıdaki gereksinimleri karşıladığınızı varsayıyoruz:







  1. Makinenizde yüklü PostgreSQL sunucusu
  2. Temel SQL bilgisi
  3. Kısıtlamalar, işlevler vb. gibi veritabanı tablosu nesneleri oluşturma izni

Örnek Tablo:

Boş olmayan bir kısıtlama içeren sütunlarla örnek bir tablo oluşturarak başlayalım. WordPress'teki wp_users tablosuna benzeyen temel bir tablo oluşturan aşağıdaki tablo oluşturma deyimini alın:



TABLO OLUŞTUR wp_users (
KİMLİK SERİ BİRİNCİL ANAHTAR,
user_login VARCHAR(60) BOŞ DEĞİL,
user_pass VARCHAR(255) BOŞ DEĞİL,
user_nicename VARCHAR(50) BOŞ DEĞİL,
user_email VARCHAR(100) BOŞ DEĞİL,
user_url VARCHAR(100),
user_registered TIMESTAMP NULL VARSAYILAN DEĞİL current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NULL DEFAULT DEĞIL 0,
display_name VARCHAR(250) NULL DEĞİL
);

Verilen sorgudan, çoğu sütunun NOT NULL kısıtlaması içerdiğini fark edeceksiniz.



Belirli bir sütunda NOT NULL kısıtlaması oluşturmanın en etkili yöntemi, tablo oluşturma sırasındadır. Bu, tabloya eklenen tüm verilerin kısıtlama kurallarına uymasını sağlar.





Bununla birlikte, mevcut bir tabloya bir kısıtlama eklerseniz, kurallar yalnızca kısıtlamadan sonra eklenen verilere uygulanır, mevcut verilere uygulanmaz. Bu, özellikle büyük tablolarda tutarsızlıklara yol açabilir.

NOT NULL Kısıtlaması ekleyin

Bazı durumlarda, mevcut bir tabloya NOT NULL kısıtlaması eklemek isteyebilirsiniz. Örneğin, ALTER TABLE komutunu ve ardından ALTER COLUMN yan tümcesini kullanabilirsiniz.



Sözdizimi aşağıdaki gibidir:

ALTER TABLE tablo_adı
ALTER COLUMN sütun_adı SET NOT NULL;

tablo_adı'nı hedef tablonuzla ve sütun_adı'nı kısıtlamayı uygulamak istediğiniz hedef sütunla değiştirin.

Kısıtlamayı Doğrulayın

PSQL yardımcı programında “\d” komutunu kullanarak kısıtlamanın belirli bir tabloda var olduğunu doğrulayabilirsiniz.

\d tablo_adı

Örnek:

sample_db=# \d wp_users;

Ortaya çıkan çıktı aşağıdaki gibidir:

NOT NULL Kısıtlamasını kaldırın

Belirli bir sütundan NOT NULL kısıtlamasını da kaldırmak isteyebilirsiniz. Bunun için ALTER TABLE ve ALTER COLUMN cümlelerini aşağıdaki gibi kullanabiliriz:

ALTER TABLE tablo_adı
ALTER COLUMN sütun_adı DROP NOT NULL;

Örneğin, wp_users tablosunun user_url sütunundan NOT NULL kısıtlamasını kaldırmak için aşağıdaki sorguyu çalıştırabiliriz:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

Bu, kısıtlamayı tablodan çıkarmalıdır.

Çözüm

Bu öğretici, PostgreSQL'de NOT NOLL kısıtlamasıyla nasıl çalışabileceğimizi araştırdı. Ayrıca, belirli bir sütundan mevcut bir NOT NULL kısıtlamasının nasıl kaldırılacağını da araştırdık.