mysql 5.7使用load data 批量导入数据

博客介绍了如何利用MySQL的LOAD DATA INFILE语句提高数据导入效率,包括语句的基本语法、导入模式、冲突解决策略以及如何处理导入过程中遇到的错误。通过示例展示了从Excel转换为txt文件并导入到名为'student'的表中的过程,强调了文件格式、字符集设置和错误处理的重要性。
摘要由CSDN通过智能技术生成

        大批量数据导入时使用navicat导入效率不高,不过mysql官方提供LOAD DATA 语句,可以高效导入数据。

        其基本语法如下

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL] --导入模式[最低优先级,需要别的sql执行完再执行|并行执行|指定local可以从客户端读取,没指定要在mysql服务器上读取]
    INFILE 'file_name'    -- 导入文件位置 
    [REPLACE | IGNORE]    -- 冲突解决策略,对现有记录覆盖|跳过不处理
    INTO TABLE tbl_name    -- 指定需要插入的表
    [PARTITION (partition_name [, partition_name] ...)] -- 表分区
    [CHARACTER SET charset_name]    -- 指定字符集
    [{FIELDS | COLUMNS}     --  指定文件字段分隔格式
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES                       --指定每行记录分隔格式
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT}
        [, col_name={expr | DEFAULT}] ...]

excel数据导入

1.创建表

CREATE TABLE `student` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(16) DEFAULT NULL,
  `id_card` varchar(18) DEFAULT NULL,
  `number` varchar(16) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.创建excel

3.文件另存为txt制表符

4.上传到服务器

5.进入mysql安装目录bin文件夹下执行./mysql -u root -p 进入mysql

6. 执行 LOAD DATA LOCAL INFILE '/data/xx.txt' REPLACE INTO TABLE student FIELDS TERMINATED BY '\t';  或指定插入字段LOAD DATA LOCAL INFILE '/data/xx.txt' REPLACE INTO TABLE student FIELDS TERMINATED BY '\t' (id,name,id_card,number); 

如遇ERROR 1300 (HY000): Invalid utf8 character string: ''问题,可将保存的txt文档另存一次改为utf-8编码。

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值