Вопрос по mysql, php – Загружать данные по умолчанию, не вставляя в таблицу

1

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Name  : varchar
TYPE  : Varchar
Status: Tiny int default value 1

Error: User Rate Limit Exceeded

LOAD DATA INFILE '/var/www/names.csv' 
INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES 

Error: User Rate Limit Exceeded

Опубликовать пример данных CSV. Я считаю сомнительным, что у вас есть' ' ограничители строки вместо'\n' Michael Berkowski
CSV не содержит столбец состояния, но по умолчанию я хочу дать статус 1 во время вставки. mark rammmy
Являются ли ваши & quot; строки & quot; действительно заканчивается с пробелами? eggyal
Что CSV фактически содержит вSTATUS столбец для записей, которые вставляются неправильно? eggyal
да, это должно быть \ n mark rammmy

Ваш Ответ

2   ответа
0

После выполнения запроса проверьте наличие предупреждений, используя

show warnings

Значение по умолчанию равно 0 для числовых типов данных и ''; для струнных.

Таким образом, вы должны были установить значение по умолчанию 1 при создании таблицы

create table tableName
(
name nvarchar(100) not null,
type nvarchar(100) not null,
status smallint default 1
);
6

При загрузке файла MySQL ожидает, что он будет иметь такое же количество столбцов, что и таблица назначения, если не указано иное, даже если отсутствующий столбец имеет значение по умолчанию. Так что предоставьте список столбцов для вашегоLOAD утверждение и литерал 1 для значенияSTATUS:

LOAD DATA INFILE '/var/www/names.csv' 
INTO TABLE users 
  FIELDS TERMINATED BY ',' 
  ENCLOSED BY '"' 
  LINES TERMINATED BY '\n' 
  IGNORE 1 LINES 
  (`name`, `type`, 1)

Вы также можете сделать это сSET пункт:

LOAD DATA INFILE '/var/www/names.csv' 
INTO TABLE users 
  FIELDS TERMINATED BY ',' 
  ENCLOSED BY '"' 
  LINES TERMINATED BY '\n' 
  IGNORE 1 LINES 
  (`name`, `type`)
  SET `status` = 1
Спасибо, что решили проблему mark rammmy

Похожие вопросы