Frage

In Informix kann ich SQL-Anweisung ausführen, die andere Datenbank verwenden:

INSERT INTO other_db:mytable ...

Ich möchte „vereinen“ beiden Datenbanken, aber ich möchte es tun „Schritt für Schritt“.

Zunächst möchte ich alle Daten bewegen, von other_db zur Hauptdatenbank und machen alias dass other_db = main_database. So kann ich haben Zeit "other_db:" zu entfernen. aus allen Anweisungen

Wie kann ich Datenbank-Alias?

War es hilfreich?

Lösung

Ich bin mir nicht bekannt, dass Verfahren für einen Aliasnamen für die gesamte Datenbank.

Sie können jedoch Synonyme für Datenbanken erstellen, in der Form:

DATABASE old_db;
CREATE SYNONYM table_name FOR new_db:table_name;

Wenn Sie für jede Tabelle so einen Aliasnamen erstellen, wie es bewegt ist, sollten Sie in der Lage sein, den gleichen Effekt zu erzielen. Nachdem alle Tabellen verlegt wurden, können Sie alle Verweise entfernen, um old_db.

Sie können systables abfragen reale Tabellen in old_db zu identifizieren, das heißt:

DATABASE old_db;
SELECT tabname, nrows
  FROM systables
  WHERE tabtype = "T"
    AND tabid > 99 -- exclude internal tables

Die Zeilenanzahl hängt natürlich auf halbwegs aktuellen UPDATE STATISTICS.

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top