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

Я импортирую CSV-файл с помощью LOAD DATAINFILE

Столбцы CSV - ИМЯ, ТИП, СОСТОЯНИЕ

моя структура таблицы

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

Я использую этот stmt:

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

Когда я использую вышеупомянутое утверждение, он должен вставить значение состояния как 1 для каждой строки, но это не то же самое. Пожалуйста, порекомендуйте

Ответы на вопрос(2)

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

show warnings

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

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

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

При загрузке файла 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

ВАШ ОТВЕТ НА ВОПРОС