Pašalinkite NOT NULL apribojimą „Postgres“.

Pasalinkite Not Null Apribojima Postgres



Reliacinėse duomenų bazėse, tokiose kaip PostgreSQL, apribojimai yra labai svarbūs palaikant duomenų vientisumą ir taikant konkrečias lentelės stulpelių taisykles. Vienas iš tokių apribojimų yra „NOT NULL“ apribojimas. Šioje pamokoje išnagrinėsime NOT NULL apribojimo sąvoką ir pateiksime nuoseklų vadovą, kaip jį sukurti ir pašalinti naudojant PostgreSQL.

Kas yra NOT NULL apribojimas?

Apribojimas NOT NULL užtikrina, kad stulpelyje negali būti nulinių reikšmių, dėl kurių kiekviena lentelės eilutė turi turėti ne nuline to konkretaus stulpelio reikšmę.

Mokymosi reikalavimai:

Jei norite vadovautis šiame įraše pateiktomis instrukcijomis, manome, kad turite šiuos reikalavimus:





  1. Įdiegtas PostgreSQL serveris jūsų kompiuteryje
  2. Pagrindinės SQL žinios
  3. Leidimas kurti duomenų bazės lentelės objektus, tokius kaip apribojimai, funkcijos ir kt

Lentelės pavyzdys:

Pradėkime nustatydami pavyzdinę lentelę su stulpeliais, kuriuose yra ne nulinis apribojimas. Paimkite šį lentelės kūrimo teiginį, kuris nustato pagrindinę lentelę, panašią į wp_users lentelę „WordPress“:



KURTI LENTELĘ wp_users (
ID SERIAL PIRMINIS RAKTAS,
user_login VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) NOT NULL,
vartotojo_url VARCHAR(100),
user_registered TIMESTAMP NOT NULL NUMATYTOJI NUSTATYMAS current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NOT NULL NUMATYTOJI 0,
rodymo_vardas VARCHAR(250) NOT NULL
);

Iš pateiktos užklausos pastebėsite, kad daugumoje stulpelių yra NOT NULL apribojimas.



Veiksmingiausias būdas sukurti NOT NULL apribojimą tam tikrame stulpelyje yra lentelės kūrimo metu. Taip užtikrinama, kad visi į lentelę įtraukti duomenys atitiktų apribojimo taisykles.





Tačiau, jei į esamą lentelę įtrauksite apribojimą, taisyklės taikomos tik duomenims, kurie pridedami po apribojimo, o ne esamiems duomenims. Dėl to gali atsirasti neatitikimų, ypač didelėse lentelėse.

Pridėkite NOT NULL apribojimą

Kai kuriais atvejais prie esamos lentelės galite pridėti NOT NULL apribojimą. Pavyzdžiui, galite naudoti komandą ALTER TABLE, po kurios seka sąlyga ALTER COLUMN.



Sintaksė yra tokia:

ALTER TABLE lentelės_pavadinimas
ALTER COLUMN stulpelio_pavadinimas SET NOT NULL;

Pakeiskite lentelės_pavadinimą tiksline lentele, o stulpelio_pavadinimas - tiksliniu stulpeliu, kuriam norite taikyti apribojimą.

Patikrinkite apribojimą

Galite patikrinti, ar apribojimas egzistuoja nurodytoje lentelėje, naudodami PSQL paslaugų komandą „\d“.

\d lentelės_pavadinimas

Pavyzdys:

sample_db=# \d wp_users;

Gauta išvestis yra tokia:

Pašalinkite NOT NULL apribojimą

Taip pat galite pašalinti apribojimą NOT NULL iš nurodyto stulpelio. Tam galime naudoti ALTER TABLE ir ALTER COLUMN sąlygas taip:

ALTER TABLE lentelės_pavadinimas
ALTER COLUMN stulpelio_pavadinimas DROP NOT NULL;

Pavyzdžiui, norėdami pašalinti NOT NULL apribojimą iš wp_users lentelės stulpelio user_url, galime vykdyti šią užklausą:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

Tai turėtų pašalinti apribojimą iš lentelės.

Išvada

Šioje pamokoje buvo nagrinėjama, kaip galime dirbti su NOT NOLL apribojimu PostgreSQL. Taip pat ištyrėme, kaip iš tam tikro stulpelio išmesti esamą NOT NULL apribojimą.