1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| CREATE TABLE YC_type_coll(
YC_ident SERIAL,
YC_code CHAR(4) NOT NULL,
YC_libelle VARCHAR(100) NOT NULL,
PRIMARY KEY(YC_ident),
UNIQUE(YC_code)
);
CREATE TABLE PY_pays(
PY_ident SERIAL,
PY_code CHAR(3) NOT NULL,
PY_libelle VARCHAR(100) NOT NULL,
PRIMARY KEY(PY_ident),
UNIQUE(PY_code)
);
CREATE TABLE CO_collectivite(
CO_ident SERIAL,
CO_nom VARCHAR(50) NOT NULL,
CO_ident_parent INTEGER,
PY_ident INTEGER NOT NULL,
YC_ident INTEGER NOT NULL,
PRIMARY KEY(CO_ident),
FOREIGN KEY(CO_ident_parent) REFERENCES CO_collectivite(CO_ident),
FOREIGN KEY(PY_ident) REFERENCES PY_pays(PY_ident),
FOREIGN KEY(YC_ident) REFERENCES YC_type_coll(YC_ident)
);
CREATE TABLE YP_applicable(
YC_ident INTEGER,
PY_ident INTEGER,
PRIMARY KEY(YC_ident, PY_ident),
FOREIGN KEY(YC_ident) REFERENCES YC_type_coll(YC_ident),
FOREIGN KEY(PY_ident) REFERENCES PY_pays(PY_ident)
);
alter table CO_collectivite
add constraint FKCO01
foreign key (YC_ident, PY_ident)
references YP_applicable(YC_ident, PY_ident)
; |
Partager