Updated on 2022-02-22 GMT+08:00

LOAD DATA

Standard Example

LOAD DATA LOCAL INFILE '/data/qq.txt' IGNORE INTO TABLE test CHARACTER SET 'gbk' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'(id,sid,asf)

If the data contains special characters, such as separators or escape characters, enclose the characters with quotation marks ("") and specify them using OPTIONALLY ENCLOSED BY '"'.

If the preceding method does not work, replace quotation marks ("") with special characters (\) and marks (").

  • If keyword LOCAL is specified, the file is read from the client host. If keyword LOCAL is not specified, this function is not supported for security purposes.
  • You can use FIELDS TERMINATED BY to specify a separator between characters. The default value is \t.
  • You can use OPTIONALLY ENCLOSED BY to ignore symbols in the data source fields.
  • You can use LINES TERMINATED BY to specify a newline character between lines. The default value is \n.

    On some hosts running the Windows OS, the newline character of text files may be \r\n. The newline character is invisible, so you may need to check whether it is there.

  • You can use CHARACTER SET to specify a file code which should be the same as the code used by physical databases in the target RDS MySQL DB instance, to avoid garbled characters. The character set code shall be enclosed in quotation marks to avoid parsing errors.
  • You can use IGNORE or REPLACE to specify whether repeated records are replaced or ignored.
  • Currently, the column name must be specified, and the sharding field must be included. Otherwise, the route cannot be determined.
  • For other parameters, see the LOAD DATA INFILE Syntax on the MySQL official website. The sequence of other parameters must be correct. For more information, visit the MySQL official website.
  1. Importing data affects performance of DDM instances and RDS MySQL DB instances. Import data during off-peak hours.
  2. Do not to send multiple LOAD DATA requests at the same time. If you do so, SQL transactions may time out due to highly concurrent data write operations, table locking, and system I/O occupation, resulting in failure of all LOAD DATA requests.
  3. Manually submit transactions when using LOAD DATA to import data so that data records are modified correctly.

    For example, configure your client as follows:

    mysql> set autocommit=0;

    mysql> LOAD DATA LOCAL INFILE '/data/qq.txt' IGNORE INTO TABLE test CHARACTER SET 'gbk' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'(id,sid,asf);

    mysql> commit;

Restrictions

The following are not supported:

  • [IGNORE number {LINES | ROWS}] clauses
  • SET clauses