2024年08月02日 MySQL insert 返回id 极客笔记
在 MySQL 中,当我们向数据库中插入一条新记录时,有时候会需要获取刚插入记录的id,以便之后进行相关操作或者返回给前端显示。本文将详细介绍在 MySQL 中进行 insert 操作并获取新插入记录的id的方法。
首先我们先来回顾一下在 MySQL 中执行基本的插入操作的语法:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
在这个语句中,我们通过 INSERT INTO
关键字指定要插入数据的表名,然后在括号中列出要插入数据的字段名,再在 VALUES
关键字后指定对应的值。
举个示例,假设我们有一个名为 users
的表,包含 id
、name
和 age
三个字段,我们要插入一条新的用户记录,可以这样写:
INSERT INTO users (name, age)
VALUES ('Alice', 25);
这样就会向 users
表中插入一条 name
为 ‘Alice’、age
为 25 的记录。
在 MySQL 中,可以使用 LAST_INSERT_ID()
函数来获取刚插入记录的 id。这个函数会返回最近插入记录的自增 id。
SELECT LAST_INSERT_ID();
在插入记录后,我们可以执行这个语句来获取刚插入记录的 id。
INSERT INTO users (name, age)
VALUES ('Bob', 30);
SELECT LAST_INSERT_ID();
假设我们刚刚插入了一条 name
为 ‘Bob’、age
为 30 的记录,那么执行以上两条语句后,会得到刚插入记录的 id。
除了在插入记录后再执行 LAST_INSERT_ID()
外,还可以在 insert 语句中直接获取刚插入记录的 id。
INSERT INTO users (name, age)
VALUES ('Charlie', 35);
SELECT LAST_INSERT_ID();
我们可以借助 SELECT LAST_INSERT_ID()
将其作为一个子查询插入到数据库中,这样就能够在插入记录的同时获取刚插入记录的 id。
INSERT INTO users (name, age, created_at)
VALUES ('David', 40, NOW()), (SELECT LAST_INSERT_ID());
这样就可以在插入名为 ‘David’、年龄为 40 的记录后,将刚插入记录的 id 也一并插入到数据库中。
通过本文的介绍,我们学会了在 MySQL 中插入记录并获取刚插入记录的 id 的方法。无论是通过 LAST_INSERT_ID()
函数还是在 INSERT 语句中使用 SELECT LAST_INSERT_ID()
,都可以轻松地获取到刚插入记录的id,方便我们进行后续操作。
本文链接:http://so.lmcjl.com/news/9809/