-
Forum: Datenbanken
by Kostas,
14. Jun 2016
Hallo Jobo,
dieser Select alleine liefert leider nicht die richtige Reihenfolge, zudem auch die Tabellen mehrfach wenn sie mehrere Foreign Key haben.
Ich habe auch soeben versucht in WHERE rc.RDB$RELATION_NAME den Tabellenname zu übergeben, leider auch ohne Erfolg.
SELECT rc.RDB$RELATION_NAME as Constraint_Tablename,
rc.RDB$CONSTRAINT_NAME,
s.RDB$FIELD_NAME AS...
-
Forum: Datenbanken
by Kostas,
13. Jun 2016
Nur der Vollständigkeitshalber,
ich habe zu diesem Thema eine weitere Lösung gefunden die ebenfalls auf indices geht.
Beide StoredProcs gehören zusammen. Die Vorgehensweise ist die gleiche so ich das sehe.
create or alter procedure DB_TBLS_ROWS_FK (
INCL_FKS smallint = 1)
returns (
-
Forum: Datenbanken
by Kostas,
13. Jun 2016
Das mit den Views habe ich schon eingebaut.
Ein Test haben ich durchgeführt mit zirkularer Referenz, das funktioniert auch. Seine eigene Tabelle muss ich noch herausfiltern.
Die Tabellen werden zwar nicht sortiert ausgegeben aber aus Referenz sicht in der richtigen Reihenfolge.
Ich werde es noch nicht produktiv einsetzen aber bis dato konnte ich keinen Fehler feststellen.
Die Tabelle...
-
Forum: Datenbanken
by Kostas,
13. Jun 2016
Die Version ohne Views.
create or alter procedure ORDER_ALLTABLES
as
declare variable COUNTNEWINSERTS integer;
declare variable NEWINSERTS integer;
begin
/* http://firebird-support.yahoogroups.narkive.com/XPYLG1la/odp-firebird-support-listing-table-of-database-in-order-of-dependency */
delete from tables_ordered;
-
Forum: Datenbanken
by Kostas,
13. Jun 2016
Hallo Jobo,
danke für den Hinweis mit den Views, werde ich noch herausfiltern.
Die Reihenfolge der Tabelle scheint soweit ich es bis jetzt getestet habe, korrekt zu sein.
Die Tabellen werden in der richtigen Reihenfolge abgerufen über das Feld ID
SELECT RDB$RELATION_NAME
FROM TABLES_ORDERED
ORDER BY ID
-
Forum: Datenbanken
by Kostas,
13. Jun 2016
Hallo Hansa,
:-) das ist mir alles durchaus bekannt. Ich habe eine Ahnung von Datenbank Design.
Was mich jedoch wundert ist, wenn Du eine Ahnung von Datenbank Design hast, warum begreifst du nicht warum ich die Reihenfolge der Tabellen benötige wenn ich erwähne das ich Foreign Keys verwende?
Andere haben es doch auch kapiert!
Sorry, vermutlich habe ich etwas übersehen zu erwähnen.
Also...
-
Forum: Datenbanken
by Kostas,
13. Jun 2016
Hallo Hansa,
ich verwende sehr intensiv referenzielle Integrität. Tabellen haben Abhängigkeiten (Foreign Keys) Als Beispiel die Tabelle BelegPos referenziert auf die Tabelle Belege. Ich kann also
nicht Belege löschen und dabei die BelegPositionen stehen lassen. Das Bedeutet auch, wenn ich Datensätze in die Datenbank inserte, muss ich zuerst die Datensätze der Tabelle Belege inserten
erst...
-
Forum: Datenbanken
by Kostas,
13. Jun 2016
Hallo Zusammen,
ich habe den Artikel gefunden http://firebird-support.yahoogroups.narkive.com/XPYLG1la/odp-firebird-support-listing-table-of-database-in-order-of-dependency
und daraus die StoredProc erzeugt. Aus meiner Datenbank hat er alle Tabellen komplett richtig ausgelesen.
create or alter procedure ORDER_ALLTABLES
as
declare variable COUNTNEWINSERTS integer;
-
Forum: Datenbanken
by Kostas,
10. Jun 2016
Hallo Fitz,
danke für die Antwort. Ich suche eine Möglichkeit über die Systemtabellen an die Reihenfolge zu kommen da ich die Abfrage innerhalb einer StorredProc benötige.
Gruß Kostas
-
Forum: Datenbanken
by Kostas,
10. Jun 2016
Hallo Zusammen,
danke für die Antworten.
Sicherlich kennen ich das Datenmodel und ich kann auch die richtige Reihenfolge zu Fuß angeben. Ich hatte gehofft das es eine Möglichkeit gibt die richtige Reihenfolge über die Systemtabellen abzufragen. Tools wie IBExpert machen das ja auch automatisch mit jeder Datenbank. Könnte natürlich sein dass das nicht automatisch geht.
Über die Systemtabellen...
-
Forum: Datenbanken
by Kostas,
10. Jun 2016
Hallo Zusammen,
wenn eine Firebird Datenbank ForeignKeys verwendet, muss bei Inserts auf die richtige Reihenfolge geachtet werden.
Gibt es eine Möglichkeit über die Systemtabellen die richtige Reihenfolge der Tabellen für die Inserts herauszufinden?
Gruß Kostas