bibawa
Legacy Member
Dit is geen vraag voor een website of zo , maar is een vraag over een examen SQL dat ik volgende week heb. Ik zou hier graag een antwoord op willen hebben of beter, het verschil tussen beide versie.
Kom nu a.u.b. niet af dit dit schoolwerk is, want het is geen taak ik heb EXAMEN dus geen tijd te verliezen.
De bedoeling is dus dat ik een tabel ga creeeren, de oplossing van mijn docent is de volgende:
(Er van uitgaande dat die constraint verwijzen naar andere tabellen),
Wat ik me hierbij afvraag is waarom de foreign key (genrenm) en (niveaucode) pas achteraf worden gelegd, ze verwijzen allebei naar andere tabellen.
Zelf heb ik het zo gedaan, dus deze 2 foreign keys direct aangemaakt achter de aanmaak van de tabel:
Als ik mijn sql statement uitvoer in oracle dan wordt mijn tabel ook netjes aangemaakt....
Je voegt een constraint toch achteraan maar pas toe als je een verwijzing maakt n aar meerdere velden uit een tabel?
Ik hoop dat hier wat slimme bollen zitten die mij kunnen helpen...
Groeten,
Bibawa
Kom nu a.u.b. niet af dit dit schoolwerk is, want het is geen taak ik heb EXAMEN dus geen tijd te verliezen.
De bedoeling is dus dat ik een tabel ga creeeren, de oplossing van mijn docent is de volgende:
Code:
create table stuk(
stuknr number(5) constraint pk_stuk primary key,
stuknm varchar2(20) not null,
nrorig number(5) constraint fk_stuk_stuk references stuk(stuknr),
genrenm varchar2(10),
niveaucode char(1) default 'A' not null,
duurstuk number(3,1),
jaar number(4) not null,
compnr number(4) not null constraint fk_stuk_componist references componist(compnr),
constraint fk_stuk_genre foreign key (genrenm) references genre(genrenm),
constraint fk_stuk_niveau foreign key (niveaucode) references niveau(niveaucode),
constraint u_combinatie unique(compnr,stuknm)
);
(Er van uitgaande dat die constraint verwijzen naar andere tabellen),
Wat ik me hierbij afvraag is waarom de foreign key (genrenm) en (niveaucode) pas achteraf worden gelegd, ze verwijzen allebei naar andere tabellen.
Zelf heb ik het zo gedaan, dus deze 2 foreign keys direct aangemaakt achter de aanmaak van de tabel:
Code:
CREATE TABLE stuk(
stuknr NUMBER(5) CONSTRAINT pk_stuknr PRIMARY KEY,
stuknm VARCHAR2(20) NOT NULL,
nrorig NUMBER(5) CONSTRAINT fk_nrorig REFERENCES stuk(stuknr),
genrenm VARCHAR2(10) CONSTRAINT fk_genrenm REFERENCES Genre(genrenm),
niveacode CHAR(1) default 'A' NOT NULL CONSTRAINT fk_niveau REFERENCES niveau (niveaucode),
duurstuk NUMBER(2,1),
jaar NUMBER(4) NOT NULL,
compnr NUMBER(4) NOT NULL,
CONSTRAINT u_comptitel UNIQUE(compnr,stuknm)
);
Als ik mijn sql statement uitvoer in oracle dan wordt mijn tabel ook netjes aangemaakt....
Je voegt een constraint toch achteraan maar pas toe als je een verwijzing maakt n aar meerdere velden uit een tabel?
Ik hoop dat hier wat slimme bollen zitten die mij kunnen helpen...
Groeten,
Bibawa

