mysql语句insert后取到返回的主键id

时间:2023-03-09 19:51:17
mysql语句insert后取到返回的主键id

Q:   有时候做类似接口里的数据订正,需要取到insert语句返回的id主键,在程序里通过对象返回好取,但是写sql怎么取到呢?

A:  用select @@identity得到上一次插入记录时自动产生的ID

说明:

  1. 若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值

举个栗子:

CREATE TABLE a (
id int(255) NOT NULL auto_increment,
name VARCHAR(20) NOT null,
PRIMARY KEY (id)
);
DELETE FROM a;
SELECT * FROM a;
INSERT INTO a (name) VALUES('a');
INSERT INTO a (name) VALUES('b');
SELECT @@IDENTITY; --  这里会显示出name='b'的记录id
SET @lastId=(SELECT @@IDENTITY); -- 把@lastId赋值为2
INSERT INTO a (name) VALUES(@lastId);-- name=2
SELECT * FROM a;