2016-09-26 2 views
0

Ich arbeite mit einer MySQL-Datenbank und möchte die Funktionalität haben, eine Tabelle in eine Klartextdatei zu schreiben, Änderungen vornehmen und neu laden zu können die Datei, die bewirkt, dass die Tabelle in den Inhalt der Datei geändert wird. Was wäre der einfachste Weg, dies zu tun? Ich weiß, ich kann SELECT * INTO file.txt, aber ich bin mir nicht sicher, ob ich diese Datei leicht hochladen kann. Ich kann einfach ein Python-Skript schreiben, um die Befehle auszuführen, aber es scheint irgendwie klobig zu sein, und ich würde im Idealfall auch eine Art von Integritätsschutz mögen, um sicherzustellen, dass ich die Datenbank nicht lösche.Einfachste Möglichkeit, eine MySQL-Datenbank in eine Textdatei zu drucken und sie erneut zu laden

+1

Mögliche doppelte ziemlich leicht importieren: http://stackoverflow.com/questions/11407349/mysql-how -export-und-importieren-ein-sql-file-from-comman d-line –

Antwort

0

Was Sie suchen ist mysqldump

Ein Beispiel:

mysqldump db_name > backup-file.sql 
+0

Außer dass das Bearbeiten einer mysqldump-Datei kann schwierig sein. – Barmar

0

Export als CSV:

SELECT 
    * 
INTO 
    OUTFILE '/path/file.csv' 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
FROM 
    `table`; 

dass ein Standard-CSV

Datei erstellen wird, um lese es in eine Tabelle (mit der gleichen Struktur) zurück

DROP TABLE IF EXISTS `table2`; 

CREATE TABLE `table2` LIKE `table`; 

LOAD DATA INFILE 
    '/path/file.csv' 
INTO 
    TABLE `table2` 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n'; 

Ich würde nicht zurück in die gleiche Tabelle importieren. Ich würde importieren in eine neue Tabelle sicher, dass es alle Arbeiten richtig zu machen, die ursprüngliche Tabelle löschen, wenn erfolgreich, dann table2 Tabelle umbenennen:

DROP TABLE table; 
RENAME TABLE table2 TO table; 

Wenn Sie importieren möchten, um wieder in die gleiche Tabelle wirklich die ersten Daten ersetzen angeben, REPLACE:

LOAD DATA INFILE 
    '/path/file.csv' 
REPLACE 
INTO TABLE `table` 
... 

der Vorteil einer CSV-Datei ist, dass Sie in eine Tabelle für die Bearbeitung

Verwandte Themen