W przypadku bardziej złożonych struktur jak numer nip, który posiada wewnętrzną sumę kontrolną można napisać funkcję w bazie danych, która będzie wywoływana w CONSTRAINT ... CHECK w celu zweryfikowania czy numer nip jest poprawny
PRZYKŁAD
funkcja sprawdza w języku Python czy numer nip kończy się cyfrą 2, jeśli tak to pozwala na wprowadzenie danych, jeśli nie, to baza danych zwraca błąd
CREATE FUNCTION check_nip_number(nip varchar)
RETURNS bool
LANGUAGE 'plpython3u'
AS $BODY$
if nip[-1] == '2':
return True
return False
$BODY$;
CREATE TABLE Customers (
ID serial PRIMARY KEY NOT NULL,
NIP_num varchar NULL,
Name varchar NOT NULL,
Surname varchar NULL,
Adress_ID int NOT NULL,
E_mail varchar NOT NULL,
Password varchar NOT NULL,
Phone_num varchar NOT NULL,
Creation_date timestamp DEFAULT now()
CONSTRAINT chk_nip CHECK (check_nip_number(NIP_num))
);
W przypadku bardziej złożonych struktur jak numer nip, który posiada wewnętrzną sumę kontrolną można napisać funkcję w bazie danych, która będzie wywoływana w
CONSTRAINT ... CHECK
w celu zweryfikowania czy numer nip jest poprawnyPRZYKŁAD funkcja sprawdza w języku Python czy numer nip kończy się cyfrą 2, jeśli tak to pozwala na wprowadzenie danych, jeśli nie, to baza danych zwraca błąd