Vastus (23.04.2024 16:07): Jah, see on EA probleem, mida mõnikord tuleb ette.Küsimus on selles, et kui mul on tabelite loomise kood, milles välisvõtmete deklareerimine on osa CREATE TABLE lausest, siis on lausete käivitamise järjekord oluline.
CREATE TABLE A(a_id INTEGER,
CONSTRAINT pk_a PRIMARY KEY (a_id));
CREATE TABLE B(b_id INTEGER,
a_id INTEGER NOT NULL,
CONSTRAINT pk_b PRIMARY KEY (b_id),
CONSTRAINT fk_b_a FOREIGN KEY (b_id) REFERENCES B(b_id));
Kõigepealt tuleb luua tabel A ja siis saab luua tabeli B.
EA vahendis saab koodi genereerimisel määrata tabelite loomise lause järjekorra. See on oluline, kui koodi genereerimisel on määratud: Options=>Separate Constraints from Tables=False
Mida EA vahendis teha, kui selline probleem esineb?
- Proovida liigutada nimekirjas suvalisi tabeleid üles/alla. Mõnikord see justkui lukustab nimekirja lahti ja ka tabeleid, mida seni ei saanud nimekirjas üles/alla liigutada, saab peale seda liigutada. Siiski on suur tõenäosus, et see ei aita.
- Viia järjekord soovitule nii lähedaseks kui saab, genereerida SQL laused ja muuta genereeritud koodis lausete järekorda käsitsi.
- Valige Options=>Separate Constraints from Tables=True ning genereerida kood, kus tabeli loomise lausete järjekord ei ole oluline.