1. SET参数介绍:
指定列值加载,加载系统将待加载文件和指定加载列值加载到集群系统的表中。输入的类型应为常量,包括字符串、整数值、浮点值和NULL。
2. SET使用语法:
LOAD DATA INFILE 'file_list' INTO TABLE [dbname.]tbl_name SET col_name = value[,...]
3. 使用说明:
- 支持指定所有列类型加载值;
- 指定列值为常量值(包括NULL),包括字符串(单引号包围)、十进制数值(10)、浮点值(10.9)、NULL、16进制表示的字符串(0xbac3)、科学计数法(10e4);
- 支持多列同时指定加载值。最多可SET表列数-1 ,如果设置的列数与表定义中的列数一致将报错:Specified all fields;
- 支持format=3、format=4以及format=5。
4. 使用限制
- 输入除常量值外的其他值,如列名、表达式等会报错,报错信息为Column 'addr' should be const value;
- 指定的列不能存在于TABLE_FIELDS中,否则报错;
- 如果没有指定AUTOFILL,指定值的列数+数据中列数之和必须等于表定义或者TABLE_FIELDS (若指定了TABLE_FIELDS)中的列数,否则会产生错误数据;如果指定了AUTOFILL,则可以小于表定义的列数,缺少的列会自动补全。如果TABLE_FIELDS列数+SET列数小于表定义的列数,能够正常加载,没有涉及的列按照default值补齐;
- 同一列在SQL中不能重复指定,否则报错。