先上代码:
mysql> insert into hello(id, age) value (12,8); Query OK, 1 row affected (0.00 sec) mysql> select last_insert_id(); +------------------+ | last_insert_id() | +------------------+ | 0 | +------------------+ 1 row in set (0.00 sec) mysql> desc hello; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | age | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.01 sec) mysql> select * from hello; +----+------+ | id | age | +----+------+ | 1 | NULL | | 2 | NULL | | 5 | 0 | | 6 | NULL | | 9 | 1 | | 10 | 2 | | 11 | 8 | | 12 | 8 | +----+------+ 8 rows in set (0.00 sec)
结论:当表的主键字段不是自增的时候,添加一条数据返回的最后插入字段的id的值就是0,但并不表示其插入错误或没有插入成功