W
momencie gdy pojawia się potrzeba kontrolowania wartości jakie mogą pojawić się
w konkretnej kolumnie w bazie danych istnieje możliwość utworzenia tzw.
ograniczenia (constraint). Przykładowo, możemy mieć tabelę przeznaczoną na dane
osób (np. klientów) i chcieć, aby w kolumnie „płeć” dało się wprowadzić jedynie
wartości zgodne ze standardem PN-ISO 5218, gdzie: 0 oznacza płeć nieokreśloną,
1 – mężczyznę, 2 – kobietę, 9 – wartość nieznaną. Aby to zrobić, podczas
tworzenia tabeli możemy zastosować polecenie CONSTRAINT zgodnie z przykładem
poniżej.
USE BazaTestowa
GO
CREATE TABLE dbo.Osoby (
Id
BIGINT IDENTITY(1,1)
NOT
NULL
PRIMARY
KEY,
Imie
nvarchar(200) NOT NULL,
Nazwisko
nvarchar(200) NOT NULL,
DataUrodzenia
date NOT NULL,
Plec
char(1) NOT NULL
CONSTRAINT
CHK_Osoby_Plec_wartosc_zgodna_z_PN_ISO_5218
CHECK (Plec in ('0', '1', '2', '9')),
);
Jeżeli
zechcemy teraz wprowadzić do bazy danych wiersz zawierający zawartość kolumny
Plec w postaci cyfry 0, 1, 2 lub 9 to operacja powinna się udać.
INSERT INTO dbo.Osoby (Imie, Nazwisko,
DataUrodzenia, Plec)
VALUES (N'Jan',N'Kowalski', '1990-01-01', '1');
Jednak
w przypadku próby wprowadzenia do bazy danych np. wartości 3 w kolumnie Plec (czy innej niż 0,1,2 lub 9), wspomniana
czynność nie uda się – zostanie wyświetlony błąd odwołujący się do stworzonego wcześniej ograniczenia.
INSERT INTO dbo.Osoby (Imie, Nazwisko,
DataUrodzenia, Plec)
VALUES (N'Anna',N'Kowalska', '1980-01-01',
'3');
Brak komentarzy:
Prześlij komentarz