2014-10-30 5 views
0

Я пытаюсь загрузить некоторые данные из файла csv в mysql. Это на малиновой пи.using Загрузка данных в mysql

Я пробовал с «--local-infile = 1» и без.

pi data > cat test.csv 
2014-10-30 08-09-08,1 
2014-10-30 08-09-13,2 
2014-10-30 08-09-18,3 
2014-10-30 08-09-23,4 
2014-10-30 08-09-28,5 
2014-10-30 08-09-33,6 
2014-10-30 08-09-38,7 
2014-10-30 08-09-43,8 
2014-10-30 08-09-48,9 
2014-10-30 08-09-53,10 

и это то, что я пробовал:

pi data > mysql --uroot -ppasswd -s solar --local-infile=1 

mysql> create table if not exists temp (
    -> time TIMESTAMP, 
    -> voltage SMALLINT UNSIGNED, 
    -> primary key (time) 
    ->); 

mysql> LOAD DATA INFILE 'test.csv' INTO TABLE 'temp' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (time,voltage); 

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''temp' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (time,voltage)' at line 1 
mysql> LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE 'temp' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (time,voltage); 

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''temp' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (time,voltage)' at line 1 

Любая помощь будет оценена.

Спасибо.

ответ

2

Вы используете неправильные символы вокруг имени вашей таблицы. MySql использует backticks не кавычки для имен полей и таблиц.

LOAD DATA INFILE 'test.csv' INTO TABLE `temp` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (time,voltage); 
+0

Спасибо. Я пытался что-то немного другое и заметил, что только первая строка загружается. Я пытаюсь добавить два столбца к напряжению. загружать данные infile '/home/pi/bin/test.csv' в поля таблицы 'temp', завершаемые столбцами ',', завершаемые ',' LINES TERMINATED BY '\ r \ n' (time, @ v1, @ v1) установить напряжение = @ v1 + @ v2; Это работает, но загружается только первая строка. Зачем? – user3259040

+0

Вы уверены, что ваши строки завершены \ r \ n, а не просто \ n – Robbert

+0

Я пробовал оба. mysql> загрузить данные infile '/home/pi/bin/test.csv' в поля таблицы 'temp', завершенные ',' LINES TERMINATED BY '\ n' (time, @ v1, @ v1) set voltage = @ v1 + @ v2; ОШИБКА 1062 (23000): Дублируемая запись '2014-10-30 08:09:08' для ключа 'PRIMARY' mysql> select * from temp; время \t напряжение 2014-10-30 08:09:08 \t NULL mysql> загрузить данные infile '/home/pi/bin/test.csv' в поля таблицы 'temp', прерванные ',' LINES TERMINATED by ' \ r '(время, @ v1, @ v1) установить напряжение = @ v1 + @ v2; ОШИБКА 1062 (23000): Дублируемая запись '2014-10-30 08:09:08' для ключа 'PRIMARY' mysql> select * from temp; time volt 2014-10-30 08:09:08 NULL – user3259040

Смежные вопросы