Što je NOT NULL ograničenje?
Ograničenje NOT NULL osigurava da stupac ne može sadržavati null vrijednosti koje zahtijevaju da svaki red u tablici ima vrijednost koja nije null za taj određeni stupac.
Zahtjevi za poduku:
Da biste slijedili upute navedene u ovom postu, pretpostavljamo da imate sljedeće zahtjeve:
- Instaliran PostgreSQL poslužitelj na vašem računalu
- Osnovno poznavanje SQL-a
- Dopuštenje za stvaranje objekata tablice baze podataka kao što su ograničenja, funkcije itd
Primjer tablice:
Počnimo s postavljanjem uzorka tablice sa stupcima koji sadrže ograničenje koje nije null. Uzmite sljedeću naredbu za kreiranje tablice koja postavlja osnovnu tablicu koja sliči tablici wp_users u WordPressu:
STVARAJ TABLICU wp_users (
ID SERIJSKI PRIMARNI KLJUČ,
user_login VARCHAR(60) NIJE NULL,
user_pass VARCHAR(255) NIJE NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) NOT NULL,
korisnički_url VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
korisnički_aktivacijski_ključ VARCHAR(255),
user_status INT NOT NULL DEFAULT 0,
display_name VARCHAR(250) NIJE NULL
);
Iz zadanog upita primijetit ćete da većina stupaca sadrži NOT NULL ograničenje.
Najučinkovitija metoda stvaranja NOT NULL ograničenja u danom stupcu je tijekom kreiranja tablice. Ovo osigurava da svi podaci koji se dodaju u tablicu poštuju pravila ograničenja.
Međutim, ako dodate ograničenje postojećoj tablici, pravila se primjenjuju samo na podatke koji su dodani nakon ograničenja, a ne na postojeće podatke. To može dovesti do nedosljednosti, posebno u velikim tablicama.
Dodajte NOT NULL ograničenje
U nekim slučajevima, možda ćete htjeti dodati NOT NULL ograničenje postojećoj tablici. Na primjer, možete koristiti naredbu ALTER TABLE nakon koje slijedi klauzula ALTER COLUMN.
Sintaksa je sljedeća:
ALTER TABLE naziv_tabliceALTER COLUMN naziv_stupca SET NOT NULL;
Zamijenite table_name svojom ciljnom tablicom i column_name ciljnim stupcem na koji želite primijeniti ograničenje.
Provjerite ograničenje
Možete provjeriti postoji li ograničenje na danoj tablici pomoću naredbe “\d” u PSQL uslužnom programu.
\d naziv_tablicePrimjer:
sample_db=# \d wp_users;Rezultirajući izlaz je sljedeći:
Uklonite NOT NULL ograničenje
Možda ćete također htjeti ukloniti NOT NULL ograničenje iz danog stupca. Za to možemo koristiti klauzule ALTER TABLE i ALTER COLUMN na sljedeći način:
ALTER TABLE naziv_tabliceALTER COLUMN naziv_stupca DROP NOT NULL;
Na primjer, da bismo uklonili NOT NULL ograničenje iz stupca user_url tablice wp_users, možemo pokrenuti sljedeći upit:
ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;Ovo bi trebalo ukloniti ograničenje iz tablice.
Zaključak
Ovaj vodič je istražio kako možemo raditi s NOT NOLL ograničenjem u PostgreSQL-u. Također smo istražili kako ispustiti postojeće NOT NULL ograničenje iz danog stupca.