Odstraňte omezení NOT NULL v Postgresu

Odstrante Omezeni Not Null V Postgresu



V relačních databázích, jako je PostgreSQL, jsou omezení zásadní pro zachování integrity dat a prosazování specifických pravidel pro sloupce tabulky. Jedním z takových omezení je omezení „NOT NULL“. V tomto tutoriálu prozkoumáme koncept omezení NOT NULL a poskytneme podrobného průvodce jeho vytvořením a odstraněním v PostgreSQL.

Co je omezení NOT NULL?

Omezení NOT NULL zajišťuje, že sloupec nemůže obsahovat hodnoty null, které vyžadují, aby každý řádek v tabulce měl pro tento konkrétní sloupec nenulovou hodnotu.

Požadavky na tutoriál:

Abyste mohli postupovat podle pokynů uvedených v tomto příspěvku, předpokládáme, že máte následující požadavky:







  1. Nainstalovaný PostgreSQL server na vašem počítači
  2. Základní znalost SQL
  3. Oprávnění k vytváření objektů databázové tabulky, jako jsou omezení, funkce atd

Příklad tabulky:

Začněme nastavením ukázkové tabulky se sloupci, které obsahují nenulové omezení. Vezměte následující příkaz create table, který nastaví základní tabulku, která se podobá tabulce wp_users ve WordPressu:



CREATE TABLE wp_users (
ID SÉRIOVÝ PRIMÁRNÍ KLÍČ,
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ětšina sloupců obsahuje omezení NOT NULL.



Nejúčinnější metodou vytvoření omezení NOT NULL v daném sloupci je vytvoření tabulky. Tím je zajištěno, že všechna data přidaná do tabulky dodržují pravidla omezení.





Pokud však přidáte omezení do existující tabulky, pravidla se použijí pouze na data, která jsou přidána za omezení, a nikoli na žádná existující data. To může vést k nesrovnalostem, zejména u velkých tabulek.

Přidejte omezení NOT NULL

V některých případech můžete chtít přidat omezení NOT NULL do existující tabulky. Můžete například použít příkaz ALTER TABLE následovaný klauzulí ALTER COLUMN.



Syntaxe je následující:

ALTER TABLE název_tabulky
ALTER COLUMN název_sloupce SET NOT NULL;

Nahraďte název_tabulky cílovou tabulkou a název_sloupce cílovým sloupcem, na který chcete omezení použít.

Ověřte omezení

Můžete ověřit, že omezení v dané tabulce existuje, pomocí příkazu „\d“ v obslužném programu PSQL.

\d název_tabulky

Příklad:

sample_db=# \d wp_users;

Výsledný výstup je následující:

Odstraňte omezení NOT NULL

Můžete také chtít odstranit omezení NOT NULL z daného sloupce. K tomu můžeme použít klauzule ALTER TABLE a ALTER COLUMN takto:

ALTER TABLE název_tabulky
ALTER COLUMN název_sloupce DROP NOT NULL;

Chcete-li například odstranit omezení NOT NULL ze sloupce user_url tabulky wp_users, můžeme spustit následující dotaz:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

Tím by se omezení mělo shodit ze stolu.

Závěr

Tento tutoriál prozkoumal, jak můžeme pracovat s omezením NOT NOLL v PostgreSQL. Také jsme prozkoumali, jak z daného sloupce odstranit existující omezení NOT NULL.