如何使用命令行将单个表导入到MySQL数据库

166

我已经成功地使用命令行导入了一个数据库,但现在我的痛点是如何使用命令行将单个表及其数据导入到现有数据库中。


3
仅导出单个表格并导入。 - Shakti Singh
4
请参考此重复问题:https://dev59.com/uXNA5IYBdhLWcg3wUL_n及其更相关的答案。 - MattBianco
2
可能是Can I restore a single table from a full mysql mysqldump file?的重复问题。 - codeforester
20个回答

370

Linux:

在命令行中

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

把你的表放在 example.sql 中。

单表的导入/导出:

  1. 导出表模式

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

    这将在指定路径创建一个名为example.sql的文件,并将用于创建表tableNamecreate table SQL命令写入其中。

  2. 将单个表导入数据库

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

    该命令需要一个SQL文件,其中包含以insert语句形式存储在表tableName中的数据。所有insert语句都将被执行,并且数据将被加载。


3
-u参数漏了 ;) mysqldump -u用户名 -p 数据库名 表名 > 路径/example.sql - Kazmin
2
导入数据时,您不需要使用mysql dump。 mysql -u用户名 -p数据库名 表名 < 路径/示例.sql这应该能够完成您的工作。 - Prabhakar
8
在某些MySQL版本中,tableName名称不是必需的,并且它会产生错误,因此您可能需要省略它! - mchar
1
我一直在遇到语法错误,直到意识到在执行时应该是在bash而不是mysql中。 - Christia
2
只有当我可以从数据库中访问并导出特定表时,这种方法才有效。但是,如果我拥有完整的数据库转储,并且想要挑选要导入的表,则此解决方案将无法使用。链接的帖子Can I restore a single table from a full mysql mysqldump file?解决了这个问题。 - codeforester
对于导入表格,以下命令适用于我: mysql -u 用户名 -p -D 数据库名 < 表格名.sql - wahid

48

导出:

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

导入:

整个数据库:

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

单个表格:
mysql --user=root databasename < single.table.sql

23

导入单个表

要将一个单独的表导入现有数据库,您可以使用以下命令:

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

注意:最好使用完整路径指定sql文件tableName.sql


(Note: It is better to use full path of the sql file tableName.sql)

6

首先,登录到您的数据库,并检查您想要导入的数据库表是否不可用于您的数据库。

如果可用,则使用该命令删除该表。否则,在导入表时会抛出错误。

DROP TABLE Table_Name;

然后,进入包含要导入的.sql文件的文件夹,并从您的终端运行以下命令:

mysql -u username -p  databasename  < yourtable.sql

终端会要求您输入密码。输入密码并检查数据库。

5

命令行

单个表格的导入/导出:

导出表格结构

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

这将创建一个名为test.sql的文件,并生成创建表table_name的SQL命令。
导入数据到表格:
 -> mysql -u your_user_name -p database_name table_name < test.sql

确保您的test.sql文件与当前目录在同一目录下,如果不是,请通过路径导航到该目录,然后运行命令。


3
在命令行中不需要指定表名,因为导出的SQL文件已经包含了创建表的相关调用。你只需要使用mysql -u your_user_name -p database_name < test.sql命令即可。 - Michael De Silva
1
以下是从一个导出表中的示例: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 CREATE TABLE account_product_prices ( - Michael De Silva

4

它正常工作...

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

请注意,这个.sql文件指定了你当前正在使用的数据库。

3
我们可以使用以下命令导入单个表格:

mysql -u 用户名 -p 数据库名 < 表格文件路径

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

3

如果你在一个SQL转储的pwd中,并且需要从中获取一张表,那么可以执行以下操作:

sed -n '/-- Table structure for table `'TableNameTo_GrabHere'`/,/-- Table/{ /^--.*$/d;p }' dump_file_to_extract_from.sql > table_name_here.sql

然后,只需将上面提取的表格导入所需的数据库即可。


2
  • 这将是EXPORT INTO OUTFILELOAD DATA INFILE的组合使用

  • 您需要使用EXPORT INTO OUTFILE导出单个表,这将把表数据导出到一个文件中。您可以使用LOAD DATA INFILE导入该特定表。

  • 请参考doc1doc2


2

从服务器到本地(导出)

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;

从本地到服务器(导入)

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

2
对于初学者,请注意您必须从终端操作,而不是在mysql内部操作。输入命令后,它会要求输入密码:db_password。 - Venkatesh Kakalwar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接