加载数据infile默认值不插入表中

mar*_*mmy 2 php mysql

我正在使用LOAD DATAINFILE导入csv文件

csv列是NAME,TYPE,STATUS

我的表结构是

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 
Run Code Online (Sandbox Code Playgroud)

当我使用上面的语句时,它必须为每一行插入状态值为1,但它不插入相同的行.请指教.

Mic*_*ski 9

加载文件时,MySQL希望它与目标表具有相同的列数,除非您另行指定,即使缺少的列具有默认值.因此,为您的LOAD语句提供列列表,并为值1提供文字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)
Run Code Online (Sandbox Code Playgroud)

你也可以用一个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
Run Code Online (Sandbox Code Playgroud)