上面那位道友说的没错,开启事务,但没说到怎么返回自增id。mysql可以获取上一次插入的自增id值,但不建议这么写。 begin; insert into A(username) values('AA'); select @id:=last_insert_id() ; #这个值就是上一次插入的自增id值 insert into B(date,planid) values('4-3',@id); commit; 正常select @id:=last_insert_id()这步不用自己处理,后端框架代码都会有封装好的,不然每次写last_insert_id()是非常不美观的。例如java的mybatis是这么获取的: <!--插入记录并获取刚插入记录的主键--> <insert id="insert" keyProperty="id" useGeneratedKeys="true" parameterType="Users"> insert into users (name ,phone) values (#{name},#{phone}); </insert> @Test public void test(){ Users users = new Users(); users.setName("kobe"); users.setPhone("13111112222"); int inserCount = usersDao.insert(users); //返回影响行数 System.out.println(users.getId); //自增主键id在插入后就会被赋值,直接取值就可以获取 }
上面那位道友说的没错,开启事务,但没说到怎么返回自增id。
mysql可以获取上一次插入的自增id值,但不建议这么写。
正常select @id:=last_insert_id()这步不用自己处理,后端框架代码都会有封装好的,不然每次写last_insert_id()是非常不美观的。
例如java的mybatis是这么获取的: