17-05-2011, 00:47
Witam,
może ktoś mi wytłaczyć o co chodzi w SQL z CONSTRAIN, ON UPDATE... oraz REFERENCES?
Mam tu taki przykład:
może ktoś mi wytłaczyć o co chodzi w SQL z CONSTRAIN, ON UPDATE... oraz REFERENCES?
Mam tu taki przykład:
Kod:
create table klient
(
nr serial ,
tytul char(4) ,
imie varchar(16) ,
nazwisko varchar(32) NOT NULL,
kod_pocztowy char(6) NOT NULL,
miasto varchar(32) ,
ulica_dom varchar(64) ,
telefon varchar(11) ,
CONSTRAINT klient_nr_pk PRIMARY KEY(nr),
CONSTRAINT klient_telefon_un UNIQUE(telefon)
);
create table towar
(
nr serial ,
opis varchar(64) NOT NULL,
koszt numeric(7,2) NOT NULL,
cena numeric(7,2) ,
CONSTRAINT towar_nr_pk PRIMARY KEY(nr)
);
create table zamowienie
(
nr serial ,
klient_nr integer NOT NULL,
data_zlozenia date NOT NULL,
data_wysylki date ,
koszt_wysylki numeric(7,2) ,
CONSTRAINT zamowienie_nr_pk PRIMARY KEY(nr) ,
CONSTRAINT klient_fk FOREIGN KEY(klient_nr)
REFERENCES klient(nr),
CONSTRAINT dates CHECK(data_zlozenia<=data_wysylki)
);
create table zapas
(
towar_nr integer NOT NULL,
ilosc integer NOT NULL CHECK (ilosc>=0),
CONSTRAINT zapas_towar_nr_pk PRIMARY KEY(towar_nr),
CONSTRAINT towar_nr_fk FOREIGN KEY(towar_nr)
REFERENCES towar(nr)
ON UPDATE CASCADE ON DELETE CASCADE