Ich brauche erstellen Sql-Skript für einfügen in viele Tabellen - insgesamt in der Nähe von 2000, aber Tabellen verknüpft (es ist ein xml adjancency Modell) - so nach eingefügt haben in table1, erhalten id, fügen Sie einige Daten, einfügen in fk von table2 - vorherige id, und Daten, nach wiederholen für table3, für Tabelle 4,... Länge der Kette von verknüpften Tabellen - mehr als 20. Die Frage ist: Gibt es einen Code-Generator, der die Beziehungen zwischen den Tabellen aus dem Informationsschema lesen kann und - nachdem er eine Tabelle als Wurzel angegeben hat - den gesamten Baum der Einfügeabfrage generiert? Danke!
Antwort
Zu viele Anzeigen?Wenn Sie es nicht auf der Anwendungsebene machen können, schlage ich vor, dass Sie versuchen, es mit Auslöser .
Im Wesentlichen würden Sie einen "AFTER INSERT"-Trigger für jede der Tabellen erstellen. So etwas in der Art:
CREATE TRIGGER t1
AFTER INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table2 (id, attrib2) VALUES(NEW.id, NEW.attrib2);
END
CREATE TRIGGER t2
AFTER INSERT ON table2
FOR EACH ROW
BEGIN
INSERT INTO table3 (id, attrib3) VALUES(NEW.id, NEW.attrib3);
END
Dann würde eine Einfügung in Tabelle1 eine Einfügung in Tabelle2 auslösen, die wiederum eine Einfügung in Tabelle3 auslösen würde und so weiter.