CREATE FUNCTION sprawdz() RETURNS TRIGGER AS ' BEGIN IF new.imie ISNULL THEN RAISE EXCEPTION ''Brakuje imienia!''; END IF; IF new.nazwisko ISNULL THEN RAISE EXCEPTION ''Brakuje nazwiska!''; END IF; IF new.pesel IS NULL THEN RAISE EXCEPTION ''Brakuje peselu dla % %!'', new.imie, new.nazwisko; END IF; IF new.klient_id < 0 THEN RAISE EXCEPTION ''Podaj poprawny numer id dla % %!'', new.imie, new.nazwisko; END IF; IF new.pozwolenie IS NULL THEN RAISE EXCEPTION ''Brakuje pozwolenia dla % %!!'', new.imie, new.nazwisko; END IF; RETURN new; END; ' LANGUAGE 'plpgsql';
Wywołujący ją trigger:
CREATE TRIGGER trig2 BEFORE INSERT OR UPDATE ON klient FOR EACH ROW EXECUTE PROCEDURE sprawdz();
I tabela klient:
CREATE TABLE Klient( klient_id serial PRIMARY KEY, imie varchar(30) NOT NULL CHECK , nazwisko varchar(30) NOT NULL CHECK, pesel varchar(30) NOT NULL CHECK, pozwolenie varchar(30)NOT NULL CHECK);
Co wpisać w CHECK(), zeby to sprawdzało i jak zadeklarować klient_id, zeby mozliwa była do wpisania tylko liczba.
Z góry dziękuje za odpowiedz.
Pozdrawiam.