I\'m importing a csv file using LOAD DATAINFILE
The csv columns are NAME,TYPE,STATUS
my table structure is
Name : varchar TYPE : Varchar Status: Ti
When loading a file, MySQL expects that it has the same number of columns as the destination table, unless you specify otherwise, even if the missing column has a default value. So supply a column list to your LOAD
statement, and a literal 1 for the value of 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)
You can also do it with a SET
clause:
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
After you execute the query , check for any warnings using
show warnings
Default value is 0 for numeric data types and '' for strings.
So you should have set default value 1 while creating the table
create table tableName
(
name nvarchar(100) not null,
type nvarchar(100) not null,
status smallint default 1
);