我正在使用 LOAD DATAINFILE 导入一个 csv 文件
csv 列是名称、类型、状态
我的表结构是
Name : varchar TYPE : Varchar Status: Tiny int default value 1
I use this 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
语句提供一个列列表,并为 STATUS
的值提供一个文字 1:
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
关于php - 加载数据 infile 默认值不插入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10897277/