通过LAST_INSERT_ID() 生成id
时间: 2023-08-15 19:08:17 浏览: 48
可以通过以下步骤使用 LAST_INSERT_ID() 函数生成 id:
1. 在 MySQL 数据库中创建一个包含自增主键的表。
2. 在 INSERT 操作中不指定主键 id 值,让 MySQL 自动生成主键 id 值。
3. 在 INSERT 操作后,使用 LAST_INSERT_ID() 函数获取自动生成的主键 id 值。
4. 将这个主键 id 值保存到其他表中作为外键,或者在本表中作为其他列的值。
举个例子,假设我们有一个名为 users 的表,其中包含以下字段:id、name、age。id 字段为自增主键。要生成一个新的用户记录,并将生成的主键 id 值保存到其他表中作为外键,可以使用以下 SQL 语句:
```
INSERT INTO users (name, age) VALUES ('John', 30);
SET @user_id = LAST_INSERT_ID();
INSERT INTO other_table (user_id, other_column) VALUES (@user_id, 'some value');
```
在上面的例子中,我们先执行一个 INSERT 操作将新用户的信息插入到 users 表中,然后使用 LAST_INSERT_ID() 函数获取自动生成的主键 id 值,并将其保存到 @user_id 变量中。接着我们使用这个主键 id 值插入一条记录到 other_table 表中,其中 user_id 字段保存的是刚才生成的主键 id 值。
相关问题
LAST_INSERT_ID() 生成id
LAST_INSERT_ID() 是 MySQL 中的一个函数,它可以返回上一次 INSERT 操作中自动生成的主键 id 值。这个主键 id 值是由 MySQL 在执行 INSERT 操作时自动生成的,通常是通过 AUTO_INCREMENT 等机制实现的。在同一个连接中,只要有 INSERT 操作执行,就可以通过 LAST_INSERT_ID() 函数获取到这个自动生成的主键 id 值。需要注意的是,如果 INSERT 操作中没有自动生成主键 id 值,那么 LAST_INSERT_ID() 函数就会返回 0。
SpringBoot中,使用MyBatis框架,在使用<insert>标签进行插入时,内嵌了<selectKey>的标签,使用了MYSQL使用SELECT LAST_INSERT_ID()。语句,但是会报错
在使用<insert>标签进行插入时,内嵌了<selectKey>的标签,使用了MYSQL使用SELECT LAST_INSERT_ID()语句,但是会报错,可能是以下原因之一:
1. 数据库驱动版本不兼容。请确认使用的数据库驱动版本是否支持SELECT LAST_INSERT_ID()语句。
2. 数据库连接对象未设置返回自动生成的主键。请确认使用的数据库连接对象已经设置了返回自动生成的主键。
3. 数据库表没有自增主键。请确认在使用SELECT LAST_INSERT_ID()语句之前,已经为表设置了自增主键。
4. 数据库连接没有开启自动提交。请确认在使用SELECT LAST_INSERT_ID()语句之前,已经开启了数据库连接的自动提交。
你可以尝试检查以上原因,确定问题所在,并进行相应的处理。