Ich möchte eine Tabelle aus einer Datenbank kopieren und in eine andere Datenbanktabelle einfügen
96
Ich möchte das Schema einer Tabelle sowie die Daten in dieser Tabelle in eine andere Datenbanktabelle in einer anderen Datenbank auf einem Live-Server kopieren. Wie könnte ich das machen?
Verwenden Sie zwei Datenbankverbindungen und lesen Sie die Tabellenstruktur von einer und führen Sie diese Abfrage in eine andere aus
Dau
Befinden sich diese Datenbanken auf separaten MySQL-Instanzen oder auf derselben? Wenn dies ein kontinuierlicher Prozess ist, können verschiedene Instanzen mit Replikation eingerichtet werden.
Nick
@Nick meine Datenbanken befinden sich auf verschiedenen MySQL-Instanzen. Können Sie erklären, wie man es kopiert?
johk95
Antworten:
218
Wenn Sie eine Tabelle von einer Datenbank in eine andere Datenbank kopieren möchten, können Sie einfach wie folgt vorgehen.
Gute Lösung, wenn die Tabelle keine Fremdschlüsseleinschränkungen aufweist. Ich habe dies verwendet, um eine Kopie einer gesamten Datenbank anstelle nur einer Tabelle zu erstellen. Dafür würde ich empfehlen, den Befehl mysqldump zu verwenden.
Thorne51
MySQL kann jetzt Tabellendaten in einzelnen Dateien speichern (und die frm-Dateien sind auch pro Tabelle). Dieser Ansatz würde zweifellos funktionieren, ist aber bei riesigen Datenbanken langsam. Gibt es vielleicht einen anderen Weg?
Alex Kovshovik
1
Dies funktioniert nur, wenn sich die Datenbanken auf demselben Server befinden.
zgr024
10
oder einfach CREATE TABLE db2.table SELECT * FROM db1.table in MySQL 5
Dies kopiert keine Dinge wie Index. Es wird lediglich eine Tabelle erstellt, die auf einer Reihe von Tupeln basiert. Sie wollen das wahrscheinlich nicht tun.
Antworten:
Wenn Sie eine Tabelle von einer Datenbank in eine andere Datenbank kopieren möchten, können Sie einfach wie folgt vorgehen.
quelle
oder einfach CREATE TABLE db2.table SELECT * FROM db1.table in MySQL 5
quelle
In BASH können Sie Folgendes tun:
quelle
CREATE TABLE db2.table_new AS SELECT * FROM db1.table_old
quelle
Wenn Sie nur möchten, dass die Struktur kopiert wird, verwenden Sie einfach
CREATE TABLE Db_Name.table1 LIKE DbName.table2;
Ps>, das Schema und Daten nicht kopiert
quelle
einfach benutzen -
CREATE TABLE DB2.newtablename SELECT * FROM DB1.existingtablename;
quelle
In der Kommandozeile:
Dadurch wird die Tabelle in SCHEMA auf localhost nach SCHEMA2 auf otherhost kopiert.
localhost und otherhost sind nur Hostnamen und können gleich oder verschieden sein.
quelle