这是我的代码。
TRUNCATE TABLE dsw_data.inventory_sss2;
SET AUTOCOMMIT=0;
LOAD DATA INFILE 'c:/inetpub/wwwroot/Data/inventory_sss.csv' INTO TABLE dsw_data.inventory_sss2 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r';
COMMIT;
以下是产生的错误
Error Code: 1366. Incorrect integer value: 'CUST NO' for column 'sno' at row 1"
我希望CSV的第一行是表格标题,其他行是数据。
另外,如何指定哪些行应该是数字(如果需要,我不确定)。
我在这里搜索过google,但是还没有看到代码示例来设置我想要的标题。
答案 0 :(得分:3)
要回答您的第一个问题,您需要使用IGNORE 1 LINES
语法:
TRUNCATE TABLE dsw_data.inventory_sss2;
SET AUTOCOMMIT=0;
LOAD DATA INFILE 'c:/inetpub/wwwroot/Data/inventory_sss.csv'
INTO TABLE dsw_data.inventory_sss2
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r';
IGNORE 1 LINES
COMMIT;
更新为显式命名列并将主键设置为null以使用自动增量:
TRUNCATE TABLE dsw_data.inventory_sss2;
SET AUTOCOMMIT=0;
LOAD DATA INFILE 'c:/inetpub/wwwroot/Data/inventory_sss.csv'
INTO TABLE dsw_data.inventory_sss2
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r';
IGNORE 1 LINES
(your_first_column, your_second_column,...)
SET sno = NULL
COMMIT;
答案 1 :(得分:0)
添加
IGNORE 1 LINES
到您的LOAD DATA
查询:
LOAD DATA INFILE 'c:/inetpub/wwwroot/Data/inventory_sss.csv' INTO TABLE dsw_data.inventory_sss2 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r' IGNORE 1 LINES;
您不需要指定哪些字段是数字字段,它将基于您要加载的表格。