Intereting Posts
MySQL выбирает случайную строку – rand () performance Перезагрузите часть страницы php без обновления всей страницы Недействительные параметры Mailgun mysql query – сообщения в блогах и комментарии с ограничением Elasticsearch – предыдущая / следующая функциональность WordPress: Комментарии: Отправка комментария открывает связанный пост Сессии Отказоустойчивость с PHP-memcache против memcached обработка синтаксической ошибки php eval для математических уравнений php удаление лишних пробелов RegisterPackage зависит от RegisterScriptFile Я пытаюсь сделать html-форму, которая при заполнении будет вставляться в мою базу данных sql. однако я получаю эту ошибку, ни одна база данных не выбрана Загрузить изображение с API facebook Будет ли PDO laststatment-> fetchAll (PDO :: FETCH_COLUMN, столбец $) повторно запускать запрос на каждый вызов? Преобразование JPG / PNG в формат SVG с использованием PHP Что такое PATH_INFO в PHP?

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

Я импортирую файл csv, используя LOAD DATAINFILE

Столбцы csv – это NAME, TYPE, STATUS

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

 Имя: varchar
 ТИП: Varchar
 Статус: значение Tiny int по умолчанию 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 для каждой строки, но он не вставляет то же самое. Пожалуйста, порекомендуйте.

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

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

 show warnings 

Значение по умолчанию – 0 для числовых типов данных и «для строк».

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

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