mysql中把一个表的数据批量导入另一个表中

mysql中把一个表的数据批量导入另一个表中
 
不管是在网站开发还是在应用 程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段。 
本文就将以MySQL 数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中。此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 。
 
类别一、 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:(此方法只适合导出两表在同一database)
 
INSERT INTO 目标表 SELECT * FROM 来源表;
例如,要将 articles 表插入到 newArticles 表中,则可以通过如下SQL语句实现:
 
INSERT INTO newArticles SELECT * FROM articles;
类别二、 如果只希望导入指定字段,可以用这种方法:
 INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;
请注意以上两表的字段必须一致(字段类型),否则会出现数据转换错误。
 
1、跨服务器复制表中数据
insert into openrowset('sqloledb','localhost';'sa';'123',Test.dbo.Table_B) 
select * from Test.dbo.Table_A 
 
//启用Ad Hoc Distributed Queries:
 
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure 
 
//使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
 
2、//不夸服务器
insert into dbo.Table_B) select * from dbo.Table_A 
将表名和数据库连接字符串用代码拼接好 然后执行上述您需要的sql语句 程序功能即可完成

如何将一个mysql数据库中的一个表导入到另一个mysql数据库中


db1为原数据库,db2为要导出到的数据库,fromtable 是要导出的表名

1.方法一:
  登录导出到的数据库,执行
  create table fromtable select * from db1.fromtable;
2.方法二:
  在cmd下执行,mysqldump -u root -p db1 fromtable file=d:/fromtable.sql; 输入秘密,root为用户名
  登录db2 执行 source d:/fromtable.sql;
3.方法三:
  登录db1 执行 select * from fromtable into outfile "d:/fromtable .txt"; 导出纯数据格式
  登录db2 执行 load   data   infile   d:/fromtable .txt   into   table   fromtable; 需要先建一张和原表结构一样的空表。
4.建一个odbc连接,先导出到access中,再导出到另一个库中。


创建MySQL数据可以使用以下命令: ``` CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, column3 datatype constraints, ... ); ``` 其,`table_name` 是要创建的名,`column1`、`column2`、`column3` 等是表中的列名,`datatype` 是列的数据类型,`constraints` 是列的约束条件(如 NOT NULL、PRIMARY KEY 等)。 例如,以下命令可以创建一个名为 `users` 的,其包含 `id`、`name` 和 `email` 三个列: ``` CREATE TABLE users ( id INT PRIMARY KEY NOT NULL, name VARCHAR(50) NOT NULL, email VARCHAR(50) ); ``` 要批量导入数据MySQL表中,可以使用 `LOAD DATA INFILE` 命令。假设我们有一个名为 `users.csv` 的文件,其包含了要导入到 `users` 表中数据,可以使用以下命令导入数据: ``` LOAD DATA INFILE '/path/to/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; ``` 其,`/path/to/users.csv` 是文件的路径,`users` 是要导入数据名,`FIELDS TERMINATED BY ','` 示列之间使用逗号分隔,`ENCLOSED BY '"'` 示列值被双引号包含,`LINES TERMINATED BY '\n'` 示行之间使用换行符分隔。 需要注意的是,`LOAD DATA INFILE` 命令默认只允许从服务器本地文件系统导入数据,如果要从远程系统导入数据,需要在命令添加 `LOCAL` 关键字,如下所示: ``` LOAD DATA LOCAL INFILE '/path/to/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; ``` 另外,从MySQL 8.0.19 版本开始,如果要使用 `LOAD DATA INFILE` 命令导入数据,需要确保 MySQL 服务器的 `local_infile` 参数被设置为 `ON`,否则会导致导入失败。可以通过以下命令查看和设置该参数: ``` SHOW VARIABLES LIKE 'local_infile'; SET GLOBAL local_infile = ON; ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值