ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE rabaty ADD FOREIGN KEY (kod) REFERENCES rabaty_info(kod) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE usługi ADD FOREIGN KEY (kod) REFERENCES uslugi_info(kod) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE usługi ADD FOREIGN KEY (pesel) REFERENCES goscie(pesel) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE kary ADD FOREIGN KEY (kod) REFERENCES kary_info(kod) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE kary ADD FOREIGN KEY (nr_rezerwacji, nr_pokoju) REFERENCES rezerwacje(nr_rezerwacj i, nr_pokoj u)
ON DELETE CASCADE ON UPDATE CASCADE;
— 04wiezy_check.sql —
ALTER TABLE goście ADD CHECK (pesel ~ ’A[0-9]*$');
ALTER TABLE goście ADD CHECK (length(pesel) IN (11));
ALTER TABLE płatności ADD CHECK (nr_rezerwacji ~ ’A[0-9]{4}-[A-Z]{ 1 }$’);
ALTER TABLE pokoje_info ADD CHECK (cena>0);
ALTER TABLE rezerwacje ADD CHECK (początek < koniec);
ALTER TABLE rabaty_info ADD CHECK (wysokosc_rabatu >= 0 AND wysokosc_rabatu
<= l);
-- 05vvidoki.sql -
DROP VIEW platnosc_pokoje CASCADE;
CREATE VIEW platnosc_pokoje AS(
SELECT nr_rezerwacji, nr_pokoju, początek, koniec, cena FROM (rezerwacje INNER JOIN pokoje USING (nr_pokoju)) INNER JOIN pokojejnfo USING (rodzaj, dla_ilu_osob)
DROP VIEW platnosc.uslugi CASCADE;
CREATE VIEW platnosc_uslugi AS(
SELECT nr_rezerwacji, imię, nazwisko, kod, cena
FROM ((rezerwacje INNER JOIN goście USING (nr_rezerwacji, nr_pokoju)) INNER JOIN usługi USING (pesel)) INNER JOIN uslugi_info USING (kod) );
DROP VIEW przydzial.rabaty CASCADE;
CREATE VIEW przydzial.rabaty AS(
SELECT nr.rezerwacji, kod, wysokosc.rabatu
FROM (płatności INNER JOIN rabaty USING (nr.rezerwacji))
INNER JOIN rabatyjnfo USING (kod)