mysql得到的last_insert_id()是在AUTO_INCREMENT字段上插入后的返回值,如果没有在AUTO_INCREMENT作过插入,结果是不会改变的
这样是可以的:
CREATE TABLE test (a INT NOT NULL AUTO_INCREMENT ,PRIMARY KEY (a));
insert into test1 values ();
select last_insert_id() as id from user limit 1 ;结果为1
insert into test1 values ();
select last_insert_id() as id from user limit 1 ;结果为2
...
这样是可以的:
CREATE TABLE test (a INT NOT NULL AUTO_INCREMENT ,PRIMARY KEY (a));
insert into test1 values ();
select last_insert_id() as id from user limit 1 ;结果为1
insert into test1 values ();
select last_insert_id() as id from user limit 1 ;结果为2
...
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| id | int(8) | NO | PRI | NULL | auto_increment |
| username | varchar(100) | NO | UNI | | |
| password | varchar(100) | NO | | | |
| nickname | varchar(100) | NO | | | |
| registertime | datetime | YES | | NULL | |
| lastlogintime | datetime | YES | | NULL | |
| valid | char(1) | NO | | y | |
+---------------+--------------+------+-----+---------+----------------+我想mysql表因该是没有问题的,估计还是xml文件或java文件里的错误
你在一个session中insert了一次,当然返回只能为1了
你可以用
select max(id) id form user来得到最后插的ID
这里用的是update,改为insert就好了