Ta bort NOT NULL-begränsningen i Postgres

Ta Bort Not Null Begransningen I Postgres



I relationsdatabaser som PostgreSQL är begränsningar avgörande för att upprätthålla dataintegriteten och genomdriva specifika regler för tabellkolumner. En sådan begränsning är 'NOT NULL'-begränsningen. I den här handledningen kommer vi att utforska konceptet med NOT NULL-begränsningen och ge en steg-för-steg-guide för att skapa och ta bort den i PostgreSQL.

Vad är en NOT NULL-begränsning?

NOT NULL-begränsningen säkerställer att en kolumn inte kan innehålla nullvärden som kräver att varje rad i tabellen har ett icke-nullvärde för den specifika kolumnen.

Handledningskrav:

För att följa instruktionerna som ges i det här inlägget antar vi att du har följande krav:







  1. Installerad PostgreSQL-server på din maskin
  2. Grundläggande SQL-kunskaper
  3. Behörighet att skapa databastabellobjekt såsom begränsningar, funktioner etc

Exempeltabell:

Låt oss börja med att skapa en exempeltabell med kolumner som innehåller en begränsning som inte är noll. Ta följande skapa tabellsats som skapar en grundläggande tabell som liknar tabellen wp_users i WordPress:



SKAPA TABELL wp_users (
ID SERIAL PRIMÄR NYCKEL,
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 INTE NULL DEFAULT aktuell_tidsstämpel,
user_activation_key VARCHAR(255),
user_status INT INTE NULL DEFAULT 0,
display_name VARCHAR(250) INTE NULL
);

Från den givna frågan kommer du att märka att de flesta kolumner innehåller en NOT NULL-begränsning.



Den mest effektiva metoden för att skapa en NOT NULL-begränsning i en given kolumn är under tabellskapandet. Detta säkerställer att all data som läggs till i tabellen följer reglerna för begränsningen.





Men om du lägger till en begränsning i en befintlig tabell, gäller reglerna endast för data som läggs till efter begränsningen och inte för befintliga data. Detta kan leda till inkonsekvenser, särskilt i stora tabeller.

Lägg till en NOT NULL-begränsning

I vissa fall kanske du vill lägga till en NOT NULL-begränsning till en befintlig tabell. Du kan till exempel använda kommandot ALTER TABLE följt av satsen ALTER COLUMN.



Syntaxen är som följer:

ALTER TABLE tabellnamn
ALTER COLUMN kolumnnamn SET NOT NULL;

Ersätt tabellnamn med din måltabell och kolumnnamn med målkolumnen som du vill tillämpa begränsningen på.

Verifiera begränsningen

Du kan verifiera att begränsningen finns i en given tabell med kommandot '\d' i PSQL-verktyget.

\d tabellnamn

Exempel:

sample_db=# \d wp_användare;

Resultatet är som följer:

Ta bort NOT NULL-begränsningen

Du kanske också vill ta bort NOT NULL-begränsningen från en given kolumn. För det kan vi använda satserna ALTER TABLE och ALTER COLUMN enligt följande:

ALTER TABLE tabellnamn
ALTER COLUMN kolumnnamn DROP NOT NULL;

För att till exempel ta bort NOT NULL-begränsningen från kolumnen user_url i tabellen wp_users kan vi köra följande fråga:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

Detta bör ta bort begränsningen från tabellen.

Slutsats

Denna handledning utforskade hur vi kan arbeta med NOT NOLL-begränsningen i PostgreSQL. Vi undersökte också hur man släpper en befintlig NOT NULL-begränsning från en given kolumn.