我正在使用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,但它不插入相同的行.请指教.
加载文件时,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)