2016-06-06 8 views
0

Gibt es eine Möglichkeit, Folgendes mithilfe von Java für DB2 zu identifizieren?Änderungen am Datenbankschema - Db2

  1. Neue Spalten hinzugefügt, um die Tabelle
  2. Spalten, die in der Tabelle
  3. Spalten umbenannt werden, die in der Tabelle als auch

Würde die über 3 möglich sein, für die Ansicht gelöscht werden?

+0

Wie unterscheiden Sie zwischen einer umbenannten Spalte und einer gelöschten Spalte? – Kayaman

+0

Genau das gleiche in meinem Kopf, daher die Frage zu sehen, ob es Systemtabellen gibt, die helfen können. – learninghuman

+0

Ich glaube, es gibt keine Geschichte auf Spalten. Unmöglich zu dieser Zeit. – danny117

Antwort

0

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.