Omejitev CHECK se uporablja za omejitev obsega vrednosti, ki se lahko postavi v stolpec tabele. Če za stolpec določimo omejitev CHECK bo dovoljevala le določene vrednosti za ta stolpec. Če za tabelo definiramo omejitev CHECK, lahko omeji vrednost v določenih stolpcih na podlagi vrednosti v drugih stolpcih vrstice. Naredimo tabelo kupci, kjer bomo omejili starost na 50 let.
CREATE TABLE kupci ( id_kupca INT, ime_kupca VARCHAR(100), starost_kupca INT, CONSTRAINT preveri_starost_kupca CHECK (starost_kupca >= 18) );
Vnesemo podatke v tabelo:
INSERT INTO kupci (id_kupca, ime_kupca, starost_kupca) VALUES (1, 'Jure', 23), (2, 'Bojan', 50), (3, 'Nina', 65), (4, 'Lili', 87), (5, 'Simona', 19);
V tem primeru nam je vpisal vse podatke, kot smo jih vpisali, v tabelo kupci, ker smo uporabili CHECK omejevanje na manj ali enako 18. Ker so vsi kupci starejši od 18 let, je bil vpis podatkov brez težav, ampak, kaj pa se zgodi, če vpišemo manjšo osebo od 18 let?
INSERT INTO kupci (id_kupca, ime_kupca, starost_kupca) VALUES (6, 'Luka', 18), (7, 'Sandra', 15);
Zaradi nastavljene omejitve, nam javi napako:
[2024-06-01 11:07:33] [23000][4025] (conn=24) CONSTRAINT `preveri_starost_kupca` failed for `baza_podatkov`.
`kupci`
(slo. [2024-06-01 11:07:33] [23000][4025] (conn=24) OMEJITEV `preveri_starost_kupca` ni uspelo za
`baza_podatkov`.`kupci`)
Vpis v tabelo tako ni mogoč in moramo popraviti omejitev ali starost kupca pri vpisovanju v tabelo.
Če želimo izbrisati omejitev CHECK vpišemo:
ALTER TABLE kupci DROP CONSTRAINT preveri_starost_kupca;
V primeru, da želimo omejitev CHECK ustvariti za stolpec starost_kupca vpišemo:
ALTER TABLE kupci ADD CHECK (starost_kupca >= 18);
V primeru, da uporabimo CONSTRAINTS potem lahko določimo ime omejitve, kot smo to storili pri izdelavi tabele (CONSTRAINT preveri_starost_kupca CHECK (starost_kupca >= 18)), v nasprotnem primeru je to ime CONSTRAINT_zaporednaŠtevilka.