Java-Programme können DB2 abfragen, um die aktuellen Definitionen von Sichten, Tabellen und Spalten abzurufen (durch Lesen der entsprechenden Ansichten SYSCAT
), aber DB2 führt nicht automatisch einen Audit-Trail für DDL-Änderungen. Ihr Java-Programm muss in regelmäßigen Abständen eine Verbindung mit der Datenbank herstellen, Abfragen ausführen, um den vollständigen Satz von Objektdefinitionen zu erfassen, und die Ergebnisse mit den Definitionen eines vorherigen Laufs vergleichen, um festzustellen, ob sich etwas Wichtiges geändert hat. Wenn Sie sich für diesen Ansatz entscheiden, sollten Sie in Ihren Abfragen ORDER BY
verwenden, um eine konsistente Sortierreihenfolge in den Ergebnissätzen zu erreichen, die Sie vergleichen.
Anstatt handgeschriebenes SQL zum Abrufen der Objektdefinitionen aus den Systemkatalogansichten zu verwenden, sollten Sie das Dienstprogramm db2look
in Betracht ziehen, das eine Live-Datenbank (oder Teile davon) in eine DDL zurückentwickeln kann Skript. Der Nachteil besteht darin, dass db2look
nicht über eine JDBC-Verbindung ausgeführt werden kann. Der Befehl verwendet eine ausführbare Datei, die nur auf dem lokalen DB2-Server oder von einem fernen System über den Data Server Client von DB2 (vollständig oder Laufzeit) ausgeführt werden kann.
Wie unterscheiden Sie zwischen einer umbenannten Spalte und einer gelöschten Spalte? – Kayaman
Genau das gleiche in meinem Kopf, daher die Frage zu sehen, ob es Systemtabellen gibt, die helfen können. – learninghuman
Ich glaube, es gibt keine Geschichte auf Spalten. Unmöglich zu dieser Zeit. – danny117