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

mysql + импортиране на файл с интервали в заглавките на колоните + как да се справя

Инструкцията на MySQL LOAD DATA зарежда стойности от файла по позиция , а не по име.

MySQL няма никакво изискване за "имена" на полетата (от заглавния ред в .csv файла) "съвпадащи" на имена на колони. (Възможно е някой друг компонент на вашата система да има такъв тип изискване, но MySQL LOAD DATA не.)

Валидно е .csv файл да няма заглавен ред. Когато има заглавен ред, ние обикновено го "пропускаме", използвайки IGNORE 1 LINES .

Като настрана предпочитам да използвам ключовата дума FIELDS в оператора LOAD DATA на мястото на COLUMNS .

В MySQL идентификаторите (имена на колони, имена на таблици) могат да бъдат екранирани с помощта на знаци за обратна отметка. За да използвате идентификатор, който включва невалидни знаци, като интервал, идентификаторът трябва да бъде екраниран.

CREATE TABLE ... 
... 
`Rec Open Date` DATE NOT NULL COMMENT 'Rec Open Date',
^             ^

На моята клавиатура отметката е клавишът в горния ляв ъгъл ` ~ точно вляво от 1 ! ключ.

ANSI_QUOTES

Ако sql_mode променливата включва ANSI_QUOTES , тогава можете също да използвате двойни кавички за избягване на идентификатори. напр.

SHOW VARIABLES LIKE 'sql_mode' ;

SET sql_mode = 'ANSI_QUOTES,...' ;

SHOW VARIABLES LIKE 'sql_mode'

Variable_name  Value        
-------------  -----------
sql_mode       ANSI_QUOTES  

След това:

CREATE TABLE ... 
... 
"Rec Open Date" DATE NOT NULL COMMENT 'Rec Open Date',
^             ^

Ако sql_mode не включва ANSI_QUOTES (или изрично, или включено в някаква друга настройка), тогава двойните кавички около идентификаторите не работят. И използването на единични кавички около идентификаторите никога не трябва да работи... единичните кавички обхващат низови литерали.

Изводът:използвайте знаци с обратна отметка, за да избегнете идентификатори (имена на колони, имена на таблици и т.н.) и използвайте единични кавички около низовите литерали. Избягвайте използването на двойни кавички около низовите литерали, за да накарате вашия SQL код да работи дори когато е зададено ANSI_QUOTES.




  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 на addslashes()

  2. Актуализиране на стойностите от таблицата на MYSQL без презареждане на страницата?

  3. Как да синхронизирам две таблици с различни MySQL бази данни на една и съща машина?

  4. JQuery UI Запазване на списък за сортиране

  5. За какво е jdbc драйверът org.gjt.mm.mysql.Driver?