Čo je obmedzenie NOT NULL?
Obmedzenie NOT NULL zaisťuje, že stĺpec nemôže obsahovať hodnoty null, ktoré vyžadujú, aby každý riadok v tabuľke mal pre daný stĺpec hodnotu, ktorá nie je nulová.
Požiadavky na návod:
Ak chcete postupovať podľa pokynov uvedených v tomto príspevku, predpokladáme, že máte nasledujúce požiadavky:
- Na vašom počítači je nainštalovaný server PostgreSQL
- Základné znalosti SQL
- Povolenie na vytváranie objektov databázovej tabuľky, ako sú obmedzenia, funkcie atď
Príklad tabuľky:
Začnime nastavením vzorovej tabuľky so stĺpcami, ktoré obsahujú nenulové obmedzenie. Použite nasledujúci príkaz na vytvorenie tabuľky, ktorý nastaví základnú tabuľku, ktorá sa podobá tabuľke wp_users vo WordPress:
CREATE TABLE wp_users (
ID SÉRIOVÝ PRIMÁRNY KĽÚČ,
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 NOT NULL DEFAULT current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NOT NULL DEFAULT 0,
display_name VARCHAR(250) NOT NULL
);
Z daného dotazu si všimnete, že väčšina stĺpcov obsahuje obmedzenie NOT NULL.
Najefektívnejšia metóda vytvorenia obmedzenia NOT NULL v danom stĺpci je počas vytvárania tabuľky. Tým sa zabezpečí, že všetky údaje, ktoré sa pridajú do tabuľky, budú spĺňať pravidlá obmedzenia.
Ak však pridáte obmedzenie do existujúcej tabuľky, pravidlá sa vzťahujú len na údaje, ktoré sa pridajú za obmedzenie, a nie na žiadne existujúce údaje. To môže viesť k nezrovnalostiam, najmä vo veľkých tabuľkách.
Pridajte obmedzenie NOT NULL
V niektorých prípadoch možno budete chcieť pridať obmedzenie NOT NULL do existujúcej tabuľky. Môžete napríklad použiť príkaz ALTER TABLE, za ktorým nasleduje klauzula ALTER COLUMN.
Syntax je nasledovná:
ALTER TABLE názov_tabuľkyALTER COLUMN názov_stĺpca SET NOT NULL;
Nahraďte table_name svojou cieľovou tabuľkou a column_name cieľovým stĺpcom, na ktorý chcete použiť obmedzenie.
Overte obmedzenie
Pomocou príkazu „\d“ v utilite PSQL môžete overiť, či obmedzenie existuje v danej tabuľke.
\d názov_tabuľkyPríklad:
sample_db=# \d wp_users;Výsledný výstup je nasledovný:
Odstráňte obmedzenie NOT NULL
Možno budete chcieť z daného stĺpca odstrániť aj obmedzenie NOT NULL. Na tento účel môžeme použiť klauzuly ALTER TABLE a ALTER COLUMN takto:
ALTER TABLE názov_tabuľkyALTER COLUMN názov_stĺpca DROP NOT NULL;
Ak chcete napríklad odstrániť obmedzenie NOT NULL zo stĺpca user_url tabuľky wp_users, môžeme spustiť nasledujúci dotaz:
ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;Toto by malo zhodiť obmedzenie zo stola.
Záver
Tento tutoriál skúmal, ako môžeme pracovať s obmedzením NOT NOLL v PostgreSQL. Preskúmali sme tiež, ako z daného stĺpca odstrániť existujúce obmedzenie NOT NULL.