Fjern NOT NULL-begrensningen i Postgres

Fjern Not Null Begrensningen I Postgres



I relasjonsdatabaser som PostgreSQL er begrensninger avgjørende for å opprettholde dataintegriteten og håndheve spesifikke regler for tabellkolonner. En slik begrensning er 'NOT NULL'-begrensningen. I denne opplæringen vil vi utforske konseptet med NOT NULL-begrensningen og gi en trinn-for-trinn-guide for å opprette og fjerne den i PostgreSQL.

Hva er en IKKE NULL-begrensning?

NOT NULL-begrensningen sikrer at en kolonne ikke kan inneholde nullverdier som krever at hver rad i tabellen har en ikke-nullverdi for den aktuelle kolonnen.

Opplæringskrav:

For å følge instruksjonene som er gitt i dette innlegget, antar vi at du har følgende krav:







  1. Installert PostgreSQL-server på maskinen din
  2. Grunnleggende SQL kunnskap
  3. Tillatelse til å lage databasetabellobjekter som begrensninger, funksjoner osv

Eksempeltabell:

La oss starte med å sette opp en eksempeltabell med kolonner som inneholder en ikke null-begrensning. Ta følgende create table-setning som setter opp en grunnleggende tabell som ligner wp_users-tabellen i WordPress:



LAG TABELL wp_users (
ID SERIE PRIMÆR NØKKEL,
user_login VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_nicename VARCHAR(50) IKKE NULL,
user_email VARCHAR(100) NOT NULL,
user_url VARCHAR(100),
user_registered TIMESTAMP IKKE NULL DEFAULT gjeldende_tidsstempel,
user_activation_key VARCHAR(255),
user_status INT IKKE NULL STANDARD 0,
display_name VARCHAR(250) IKKE NULL
);

Fra den gitte spørringen vil du legge merke til at de fleste kolonner inneholder en NOT NULL-begrensning.



Den mest effektive metoden for å lage en NOT NULL-begrensning i en gitt kolonne er under tabellopprettingen. Dette sikrer at alle dataene som legges til i tabellen, overholder reglene for begrensningen.





Men hvis du legger til en begrensning i en eksisterende tabell, gjelder reglene bare for dataene som legges til etter begrensningen og ikke for eksisterende data. Dette kan føre til inkonsekvenser, spesielt i store bord.

Legg til en NOT NULL-begrensning

I noen tilfeller vil du kanskje legge til en NOT NULL-begrensning til en eksisterende tabell. Du kan for eksempel bruke ALTER TABLE-kommandoen etterfulgt av ALTER COLUMN-leddet.



Syntaksen er som følger:

ALTER TABLE tabellnavn
ALTER COLUMN column_name SET NOT NULL;

Erstatt tabellnavnet med måltabellen og kolonnenavnet med målkolonnen du vil bruke begrensningen på.

Bekreft begrensningen

Du kan bekrefte at begrensningen eksisterer på en gitt tabell ved å bruke '\d'-kommandoen i PSQL-verktøyet.

\d tabellnavn

Eksempel:

sample_db=# \d wp_brukere;

Den resulterende utgangen er som følger:

Fjern NOT NULL-begrensningen

Det kan også være lurt å fjerne NOT NULL-begrensningen fra en gitt kolonne. For det kan vi bruke ALTER TABLE- og ALTER COLUMN-klausulene som følger:

ALTER TABLE tabellnavn
ALTER COLUMN column_name DROP NOT NULL;

For å fjerne NOT NULL-begrensningen fra user_url-kolonnen i wp_users-tabellen, kan vi for eksempel kjøre følgende spørring:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

Dette bør slippe begrensningen fra tabellen.

Konklusjon

Denne opplæringen utforsket hvordan vi kan jobbe med NOT NOLL-begrensningen i PostgreSQL. Vi undersøkte også hvordan man kan fjerne en eksisterende NOT NULL-begrensning fra en gitt kolonne.