Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich eine einzelne Zeile/einen Datensatz von einer MySQL-Instanz in eine andere kopieren?

Wenn Sie bereits mit mysqldump vertraut sind, möchte ich Sie daran erinnern, dass mysqldump einen --where Möglichkeit , sodass Sie eine einzelne Zeile erhalten können, wenn Sie die Bedingung dafür schreiben:

mysqldump databasename tablename --where "id=12345" --no-create-info --skip-add-locks --host=db1  | \
  mysql --host=db2

Sie können auch SELECT...INTO OUTFILE um das Ergebnis einer beliebigen Abfrage in eine flache Datei auszugeben, sogar eine Abfrage einer einzelnen Zeile. Dann DATEN INFILE LADEN um diese Datei auf der anderen Instanz zu importieren.

Sie könnten auch ein einfaches Skript in der Sprache Ihrer Wahl schreiben. Verbinden Sie sich mit beiden Instanzen. WÄHLEN Sie eine einzelne Zeile aus der Quellinstanz aus und speichern Sie sie in einer Variablen im Skript. Bilden Sie dann einen INSERT-Befehl, der für die Zielinstanz ausgeführt werden soll. Dies ist möglicherweise nicht die effizienteste Methode zum Verschieben einer großen Datenmenge, aber für eine einzelne Zeile wäre es in Ordnung.