Mikä on NOT NULL -rajoitus?
NOT NULL -rajoite varmistaa, että sarake ei voi sisältää nolla-arvoja, jotka edellyttävät, että jokaisella taulukon rivillä on ei-nolla-arvo kyseiselle sarakkeelle.
Opetusohjelman vaatimukset:
Noudattaaksesi tässä viestissä annettuja ohjeita, oletamme, että sinulla on seuraavat vaatimukset:
- PostgreSQL-palvelin asennettu koneellesi
- SQL:n perustiedot
- Oikeus luoda tietokantataulukkoobjekteja, kuten rajoitteita, toimintoja jne
Esimerkkitaulukko:
Aloitetaan asettamalla esimerkkitaulukko, jossa on sarakkeita, jotka sisältävät ei-nolla-rajoitteen. Ota seuraava taulukon luontilauseke, joka määrittää perustaulukon, joka muistuttaa WordPressin wp_users-taulukkoa:
LUO TAULUKO wp_users (
ID SERIAL PRIMARY KEY,
user_login VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) NOT NULL,
user_url VARCHAR(100),
user_registered TIMESTAMP EI NULL OLETUS nykyinen_aikaleima,
user_activation_key VARCHAR(255),
user_status INT EI NULL OLETUS 0,
näyttönimi VARCHAR(250) NOT NULL
);
Annetusta kyselystä huomaat, että useimmat sarakkeet sisältävät NOT NULL -rajoitteen.
Tehokkain tapa luoda NOT NULL -rajoitus tiettyyn sarakkeeseen on taulukon luomisen aikana. Tämä varmistaa, että kaikki taulukkoon lisättävät tiedot noudattavat rajoituksen sääntöjä.
Jos kuitenkin lisäät rajoitteen olemassa olevaan taulukkoon, säännöt koskevat vain rajoituksen jälkeen lisättyjä tietoja, eivät olemassa olevia tietoja. Tämä voi johtaa epäjohdonmukaisuuksiin, etenkin suurissa taulukoissa.
Lisää NOT NULL -rajoitus
Joissakin tapauksissa saatat haluta lisätä NOT NULL -rajoitteen olemassa olevaan taulukkoon. Voit esimerkiksi käyttää ALTER TABLE -komentoa ja sen jälkeen ALTER COLUMN -lausetta.
Syntaksi on seuraava:
ALTER TABLE taulukon_nimiALTER COLUMN sarakkeen_nimi SET NOT NULL;
Korvaa taulukon_nimi kohdetaulukollasi ja sarakkeen_nimi kohdesarakkeella, johon haluat soveltaa rajoitusta.
Tarkista rajoitus
Voit varmistaa, että rajoitus on olemassa tietyssä taulukossa käyttämällä PSQL-apuohjelman \d-komentoa.
\d taulukon_nimiEsimerkki:
sample_db=# \d wp_users;Tuloksena oleva tulos on seuraava:
Poista NOT NULL -rajoitus
Voit myös haluta poistaa NOT NULL -rajoitteen tietystä sarakkeesta. Tätä varten voimme käyttää ALTER TABLE- ja ALTER COLUMN -lauseita seuraavasti:
ALTER TABLE taulukon_nimiALTER COLUMN sarakkeen_nimi DROP NOT NULL;
Esimerkiksi NOT NULL -rajoitteen poistamiseksi wp_users-taulukon user_url-sarakkeesta voimme suorittaa seuraavan kyselyn:
ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;Tämän pitäisi poistaa rajoitus taulukosta.
Johtopäätös
Tässä opetusohjelmassa tutkittiin, kuinka voimme työskennellä PostgreSQL:n NOT NOLL -rajoitteen kanssa. Tutkimme myös, kuinka olemassa oleva NOT NULL -rajoitus voidaan pudottaa tietystä sarakkeesta.