So importieren Sie eine einzelne Tabelle über die Befehlszeile in die MySQL-Datenbank

140

Ich hatte eine Datenbank erfolgreich über die Befehlszeile importiert, aber jetzt ist mein Schmerzbereich, wie ich eine einzelne Tabelle mit ihren Daten über die Befehlszeile in die vorhandene Datenbank importiere.

Tismon
quelle
3
Nur einzelne Tabelle exportieren und importieren
Shakti Singh
3
Siehe auch diese doppelte Frage: stackoverflow.com/q/1013852/385571 mit seinen relevanteren Antworten
MattBianco

Antworten:

315

Linux:

In der Kommandozeile

 mysql -u username -p  databasename  < path/example.sql

Setzen Sie Ihre Tabelle in example.sql

Import / Export für einzelne Tabelle:

  1. Tabellenschema exportieren

    mysqldump -u username -p databasename tableName > path/example.sql

    Dadurch wird eine Datei mit dem Namen example.sqlunter dem angegebenen Pfad erstellt und der create tableBefehl sql zum Erstellen der Tabelle geschrieben tableName.

  2. Daten in Tabelle importieren

    mysql -u username -p databasename < path/example.sql

    Dieser Befehl benötigt eine SQL-Datei, die Daten in Form von insertAnweisungen für die Tabelle enthält tableName. Alle insertAnweisungen werden ausgeführt und die Daten werden geladen.

sush
quelle
2
das -u wurde verpasst;) mysqldump -u Benutzername -p Datenbankname tableName> path / example.sql
Kazmin
2
Zum Importieren müssen Sie keinen MySQL-Dump verwenden. mysql -u Benutzername -p Datenbankname tableName <path / example.sql Es sollte Ihren Job machen
Prabhakar Undurthi
8
Der tableNameName wird nicht für alle MySQL-Versionen benötigt und führt zu Fehlern. Daher müssen Sie ihn möglicherweise weglassen!
mchar
1
Ich bekam einen Syntaxfehler, bis ich merkte, dass ich bei der Ausführung in Bash und nicht in MySQL war.
Christia
2
Dies würde nur funktionieren, wenn ich Zugriff auf die Datenbank habe, aus der ich eine bestimmte Tabelle exportieren kann. Wenn ich jedoch einen vollständigen Speicherauszug der Datenbank habe und die zu importierenden Tabellen auswählen möchte, funktioniert diese Lösung nicht. Der verknüpfte Beitrag Kann ich eine einzelne Tabelle aus einer vollständigen mysql mysqldump-Datei wiederherstellen? behebt dieses Problem.
Codeforester
34

Export:

mysqldump --user=root databasename > whole.database.sql
mysqldump --user=root databasename onlySingleTableName > single.table.sql

Import :

Ganze Datenbank :

mysql --user=root wholedatabase < whole.database.sql

Einzeltisch :

mysql --user=root databasename < single.table.sql

quelle
23

Alle diese Optionen sind in Ordnung, wenn Sie die Option haben, die Daten erneut zu exportieren.

Wenn Sie jedoch eine vorhandene SQL-Datei verwenden und eine bestimmte Tabelle daraus verwenden müssen, können Sie mit diesem Perl-Skript im TimeSheet-Blog die Tabelle in eine separate SQL-Datei extrahieren und anschließend importieren.

bizna
quelle
Auch der verknüpfte Beitrag Kann ich eine einzelne Tabelle aus einer vollständigen mysql mysqldump-Datei wiederherstellen? behebt dieses Problem.
Codeforester
12

Einzelne Tabelle importieren

Um eine einzelne Tabelle in eine vorhandene Datenbank zu importieren, verwenden Sie den folgenden Befehl:

mysql -u username -p -D database_name < tableName.sql

Hinweis: Es ist besser, den vollständigen Pfad der SQL-Datei tableName.sql zu verwenden

Tanmay Patel
quelle
5

Befehlszeile

Import / Export für einzelne Tabelle:

Tabellenschema exportieren

 -> mysqldump -u your_user_name -p your_database_name table_name > test.sql

Dadurch wird eine Datei mit dem Namen test.sql erstellt und der Befehl table sql erstellt, um die Tabelle table_name zu erstellen.

Daten in Tabelle importieren

 -> mysql -u your_user_name -p database_name table_name < test.sql

Stellen Sie sicher, dass sich Ihre Datei test.sql im selben Verzeichnis befindet. Wenn Sie nicht durch den Pfad navigieren, führen Sie den Befehl aus.

Prabhakar Undurthi
quelle
3
Sie müssen den Tabellennamen nicht in der Befehlszeile angeben, da die exportierte SQL-Datei den entsprechenden Aufruf zum Erstellen der Tabelle hat. Alles was Sie brauchen ist mysql -u your_user_name -p database_name < test.sql.
Michael De Silva
1
Hier ist ein Beispiel aus einer exportierten Tabelle: `22 DROP TABLE IF EXISTS account_product_prices; 23 / *! 40101 SET @saved_cs_client = @@ character_set_client /; 24 / ! 40101 SET character_set_client = utf8 * /; 25 TABELLE ERSTELLEN account_product_prices(`
Michael De Silva
5

Melden Sie sich zunächst bei Ihrer Datenbank an und prüfen Sie, ob die zu importierende Datenbanktabelle in Ihrer Datenbank nicht verfügbar ist.

Wenn es verfügbar ist, löschen Sie die Tabelle mit dem Befehl. Andernfalls wird beim Importieren der Tabelle ein Fehler ausgegeben.

DROP TABLE Table_Name;

Wechseln Sie dann in den Ordner, in den Sie die .sqlzu importierende Datei haben, und führen Sie den folgenden Befehl von Ihrem Terminal aus

mysql -u username -p  databasename  < yourtable.sql

Das Terminal fordert Sie auf, das Passwort einzugeben. Geben Sie es ein und überprüfen Sie die Datenbank.

Varun PV
quelle
4

Es funktioniert richtig ...

C:\>mysql>bin>mysql -u USERNAME DB_NAME < tableNameFile.sql

Bitte beachten Sie, dass die SQL-Datei Ihre aktuelle Datenbank angegeben hat.

Ranjith
quelle
2

Wir können einzelne Tabellen mit CMD wie folgt importieren:

D:\wamp\bin\mysql\mysql5.5.24\bin>mysql -h hostname -u username -p passowrd databasename < filepath
Digisha
quelle
2

Wenn Sie bereits die gewünschte Tabelle in Ihrer Datenbank haben, löschen Sie sie zuerst und führen Sie dann den folgenden Befehl aus:

 mysql -u username -p  databasename  < yourtable.sql
jsina
quelle
2

Vom Server zum lokalen (Exportieren)

mysqldump -u username -p db_name table_name > path/filename.sql;
mysqldump -u root -p remotelab welcome_ulink > 
/home_local/ladmin/kakalwar/base/welcome_ulink.sql;

Vom lokalen zum Server (Importieren)

mysql -u username -p -D databasename < path/x/y/z/welcome_queue.sql
mysql -u root -p -D remotelab < 
/home_local/ladmin/kakalwar/instant_status/db_04_12/welcome_queue.sql
Venkatesh Kakalwar
quelle
2
Für Anfänger beachten Sie bitte, dass Sie vom Terminal aus arbeiten müssen, das sich nicht in der MySQL befindet, nachdem Sie den Befehl ausgeführt haben. Es wird nach dem Passwort db_password gefragt
Venkatesh Kakalwar
2

Auch es funktioniert. In Befehlsform

cd C:\wamp\bin\mysql\mysql5.5.8\bin //hit enter
mysql -u -p databasename //-u=root,-p=blank
Geld
quelle
2
  • Es wäre eine Kombination von EXPORT INTO OUTFILEundLOAD DATA INFILE

  • Sie müssen diese einzelne Tabelle mit EXPORT INTO OUTFILEexportieren. Dadurch werden Tabellendaten in eine Datei exportiert. Sie können diese bestimmte Tabelle mit importierenLOAD DATA INFILE

  • Siehe doc1 , doc2

Shamit Verma
quelle
1

Sie können dies im Befehl mysql anstelle des Befehls linux tun.
1.Melden Sie Ihre MySQL an.
2. Führen Sie dies im Befehl mysql aus:
use DATABASE_NAME;
SET autocommit=0 ; source ABSOLUTE_PATH/TABLE_SQL_FILE.sql ; COMMIT ;

GeekLei
quelle
1
mysql -u root -p -D dbname < tablename.sql
Nids Barthwal
quelle
1
Während dieser Code - Schnipsel zu begrüßen ist, und etwas Hilfe bieten kann, würde es erheblich verbessert , wenn es eine Erklärung enthalten von , wie und warum Dies löst das Problem. Denken Sie daran, dass Sie in Zukunft die Frage für die Leser beantworten, nicht nur für die Person, die jetzt fragt! Bitte bearbeiten Sie Ihre Antwort, um eine Erklärung hinzuzufügen, und geben Sie an, welche Einschränkungen und Annahmen gelten.
Toby Speight
0
-> mysql -h host -u user -p database_name table_name < test_table.sql
Kesha Viveki
quelle
0

Die Verwendung einer temporären Datenbank kann je nach Größe der Datenbank eine Lösung sein.

mysql -u [username] -p -e "create database tempdb"
mysql -u [username] -p tempdb < db.sql
mysqldump -u [username] -p tempdb _table_to_import_ > table_to_import.sql
mysql -u [username] -p maindb < table_to_import.sql
noego
quelle
0

Um eine Tabelle in eine Datenbank zu importieren, fügen Sie diese Zeile in Ihre SQL-Datei ein DROP TABLE IF EXIST 'table_name'und führen Sie den Befehl aus , wenn die Tabelle bereits vorhanden ist mysql -u username -p database_name < import_sql_file.sql. Bitte überprüfen Sie den SQL-Dateipfad, bevor Sie den Befehl ausführen.

Vijay
quelle