我正在尝试将酒店表导入数据库。但是,似乎我得到一个错误,我无法修复它花费数小时!这是我得到的错误:
Incorrect integer value: 'wolfinns1' for column 'hotelId' at row 1
auto_increment中的第一列,但似乎它尝试从cvs文件中读取,尽管那里没有条目!以下是hotels表和sql命令的记录。顺便说一句,我已将所有文件转换为Unix格式。
==== hotesls.csv =============
wolfinns1,midas1st,Fayetteville,NC,9101231234,14
wolfinns2,midas2st,Raleigh,NC,9191231234,15
wolfinns3,midas3st,Los Angeles,CA,3101231234,16
wolfinns4,midas4st,New York,NY,2121231234,17
==========================
这是架构:
+-----------+-----------------+------+-----+---------+------------
| Field | Type | Null | Key | Default | Extra
+-----------+-----------------+------+-----+---------+------------
| hotelId | int(9) unsigned | NO | PRI | NULL | auto_increment
| name | varchar(50) | NO | | NULL |
| address | varchar(75) | NO | | NULL |
| city | varchar(50) | NO | | NULL |
| state | char(2) | NO | | NULL |
| phone | varchar(20) | NO | UNI | NULL |
| managerId | int(9) unsigned | NO | MUL | NULL |
+-----------+-----------------+------+-----+---------+------------
现在发出sql命令:
MariaDB [xzheng6]> LOAD DATA LOCAL INFILE 'hotels.csv' INTO TABLE hotels FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STARTING BY '';
Query OK, 0 rows affected, 16 warnings (0.00 sec)
Records: 4 Deleted: 0 Skipped: 4 Warnings: 16
这是警告!
MariaDB [xzheng6]> show warnings\g
+---------+------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1366 | Incorrect integer value: 'wolfinns1' for column 'hotelId' at row 1 |
| Warning | 1265 | Data truncated for column 'state' at row 1 |
| Warning | 1261 | Row 1 doesn't contain data for all columns
非常感谢你提前。 CS
来自mysql documentation
默认情况下,如果在LOAD DATA INFILE语句末尾没有提供列列表,则输入行应包含每个表列的字段。如果只想加载某些表的列,请指定列列表:
LOAD DATA INFILE'persondata.txt'INTO TABLE persondata(col_name_or_user_var [,col_name_or_user_var] ...);
因此,提供一个不包含hotelID
的列列表,你应该没问题。