Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL LOAD DATA INFILE:работи, но непредсказуем терминатор на ред

Можете да посочите разделител на редове като '\n' и да премахнете крайните разделители '\r', ако е необходимо, от последното поле по време на зареждане.

Например -

Да предположим, че имаме файла 'entries.txt'. Разделителят на редове е '\r\n' и само след ред ITEM2 | CLASS3 | DATE2 разделителят е '\n':

COL1  | COL2   | COL3
ITEM1 | CLASS1 | DATE1
ITEM2 | CLASS3 | DATE2
ITEM3 | CLASS1 | DATE3
ITEM4 | CLASS2 | DATE4

Изявление CREATE TABLE:

CREATE TABLE entries(
  column1 VARCHAR(255) DEFAULT NULL,
  column2 VARCHAR(255) DEFAULT NULL,
  column3 VARCHAR(255) DEFAULT NULL
)

Нашата заявка LOAD DATA INFILE:

LOAD DATA INFILE 'entries.txt' INTO TABLE entries
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(column1, column2, @var)
SET column3 = TRIM(TRAILING '\r' FROM @var);

Показване на резултатите:

SELECT * FROM entries;
+---------+----------+---------+
| column1 | column2  | column3 |
+---------+----------+---------+
| ITEM1   |  CLASS1  |  DATE1  |
| ITEM2   |  CLASS3  |  DATE2  |
| ITEM3   |  CLASS1  |  DATE3  |
| ITEM4   |  CLASS2  |  DATE4  |
+---------+----------+---------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Как да копирам редове, но да променям няколко полета?

  2. Как да актуализирам набора идентификатор от 1?

  3. MySQL ALTER TABLE увисва

  4. Как да направя Qt mysql драйвер в Windows?

  5. Laravel db миграция - грешка при преименуване на колона - Неизвестен тип база данни е поискано изброяване