开发指南—DML语句—LOAD DATA

简介: 本文介绍在PolarDB-X中使用load data进行数据导入的相关限制和注意事项。

本文介绍在PolarDB-X中使用load data进行数据导入的相关限制和注意事项。

注意事项

  • 使用load data进行数据导入时,load data语句并非一个事务,因此各种原因(如数据库宕机等)可能导致部分数据插入,剩余部分未插入。
  • 客户端需要开启local-infile

语法


LOAD DATA   
    [LOCAL] 
    INFILE 'file_name' 
    [REPLACE | IGNORE] 
    INTO TABLE tbl_name 
    [CHARACTER SET charset_name] 
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string'] 
        [ENCLOSED BY 'char'] 
        [ESCAPED BY 'char'] 
    ]
    [LINES
        [STARTING BY 'string'] 
        [TERMINATED BY 'string'] 
    ]
    [IGNORE number {LINES | ROWS}] 
    [(col_name_or_mask [, col_name_or_mask] ...)]

参数说明

参数名称 说明
LOAD DATA [LOCAL] INFILE 文件位于服务端还是client端。
file_name 使用相对路径时,为相对于客户端启动时的路径。
REPLACE 导入数据时,遇到主键重复则强制用当前数据覆盖已有数据。
IGNORE 导入数据时,遇到主键重复则自动忽略该行。
[FIELDS] TERMINATED BY 'string' 定义每行数据的分隔符,默认为\t
[FIELDS] ENCLOSED BY 'char' 每列数据的包围符。例如,某一列数据为"test",定义enclosed by '"'后,导入数据时先将"test"前后的"移除,然后再导入数据。
[LINES] TERMINATED BY 'string' 定义行分隔符,默认为\n
IGNORE number LINES 导入数据时忽略开始的某几行。例如,IGNORE 1 LINES,导入数据时忽略第一行数据。
(col_name_or_mask [, col_name_or_mask] ...)
  1. 设置导入的列,如果不设置,默认按照表中的列顺序来导入数据。
  2. 掩盖掉文件中的某些列,使文件中对应列失效,例如,table test(x int, y int),导入文件有三列,导入时使用 (x, @name, y) 则会忽略文件中的第二列,使用第一列填充x,使用第二列填充y。

示例

创建测试表:


CREATE TABLE test ( a int(11) NOT NULL DEFAULT '0',  b varchar(8) NOT NULL,  PRIMARY KEY (a)  ) DBPARTITION by hash(a);

本地待导入文件:


x,y

test1,2
test2,3
test3,4
test4,5
test5,6
test7,8
test8,9

load data语句:


LOAD DATA LOCAL INFILE '~/test.txt' IGNORE INTO TABLE test FIELDS TERMINATED BY ',' LINES STARTING BY 'test' TERMINATED BY '\n' IGNORE 1 LINES;

结果如下:


mysql> select * from test order by a;
+------+------+
| a | b |
+------+------+
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
| 4 | 5 |
| 5 | 6 |
| 7 | 8 |
| 8 | 9 |
+------+------+
7 rows in set (0.02 sec)
相关文章
|
XML 数据库 数据格式
嵌入式工作流程开发!工作流 Activiti 框架中子流程的使用指南
本篇文章对工作流Activiti框架中的子流程进行的详尽的分析和说明,在工作流Activiti集成到项目中开发时,可以嵌入子流程进行使用。子流程包括了事件子流程,事务子流程以及调用活动子流程。通过对内嵌子流程的方式的学习,可以帮助我们将工作流框架很好地应用在继承式建模的流程场景下。
1451 0
嵌入式工作流程开发!工作流 Activiti 框架中子流程的使用指南
|
存储 缓存 JSON
Unity资源热更新知识梳理及工作流介绍
研究了大半年的热更,才做出了一套相对完善的热更架构。不得不说,这块的知识点还是多而杂的,值得专门开篇博文来记录梳理。
3112 0
|
4月前
|
存储 缓存 人工智能
Redis六大常见命令详解:从set/get到过期策略的全方位解析
本文将通过结构化学习路径,帮助读者实现从命令语法掌握到工程化实践落地的能力跃迁,系统性提升 Redis 技术栈的应用水平。
|
4月前
|
JSON 监控 数据挖掘
借助拼多多 API,拼多多店铺商品类目优化精准指导
在电商竞争激烈的环境下,拼多多店铺通过API优化商品类目,可提升搜索排名与转化率。本文详解如何利用API获取类目数据、分析匹配度并实现自动化优化,助力商家精准定位商品类目,提升流量与销量。
347 0
lxml.etree.XPathEvalError: Invalid expression
lxml.etree.XPathEvalError: Invalid expression
193 4
JAVA 比较两个区间是否存在交集
最近遇到一个开发问题,判断两个价格的大小,听着很简单,但其实价格是浮动的,也就是说价格是一个范围,比如物品A的价格是5~10,现在我们通过筛选条件,把价格符合在8~20之前的物品筛选出来,很明显物品A是符合这个筛选条件的,因为它的价格可以说8、9、10,完全符合在8~20的范围内。
377 1
|
存储 安全 搜索推荐
hyperf-throttle-requests,一个超牛的 PHP 限流神器
`hyperf-throttle-requests` 是专为 Hyperf 框架设计的请求频率限流库,适用于分布式系统和微服务架构,能有效防止恶意攻击和流量高峰对后端服务的影响。通过限制用户在一定时间内的请求次数,确保服务的稳定性和可用性。该库支持注解、助手函数及直接调用三种使用方式,并提供了灵活的配置选项,如存储驱动、最大请求次数等。最新版已兼容 Hyperf 3.1 版本,安装简便,配置灵活,是保护后端服务的理想选择。
229 3
|
机器学习/深度学习 数据可视化 数据挖掘
PyTorch Geometric (PyG) 入门教程
PyTorch Geometric是PyTorch1的几何图形学深度学习扩展库。本文旨在通过介绍PyTorch Geometric(PyG)中常用的方法等内容,为新手提供一个PyG的入门教程。
PyTorch Geometric (PyG) 入门教程
|
存储 分布式计算 大数据
现代化数据库技术——面向大数据的分布式存储系统
传统的关系型数据库在面对大规模数据处理时遇到了诸多挑战,而面向大数据的分布式存储系统应运而生。本文将深入探讨现代化数据库技术中的分布式存储系统,包括其优势、工作原理以及在大数据领域的应用。
|
人工智能 安全 搜索推荐
未来智能手机操作系统的发展趋势与挑战分析
随着智能手机技术的迅猛发展,操作系统作为其核心组成部分,也在不断演进和改善。本文分析了未来智能手机操作系统的发展趋势与面临的挑战,探讨了安卓和iOS等主流操作系统的创新方向和竞争格局。通过对人工智能、安全性、用户体验等方面的探讨,展望了未来智能手机操作系统的可能发展方向,以及技术和市场带来的挑战。
485 27