mysql 执行insert返回自增长id

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 执行insert返回自增长id相关的知识,希望对你有一定的参考价值。

mysql 执行insert返回自增长id set@id= LAST_INSERT_ID() @id返回null,什么原因,能告知一下吗?

问题分析:通过insert操作之后,只能再查询自增ID即可

具体操作:MYSQL获取自增ID的四种方法

    select max(id) from tablename

    SELECT LAST_INSERT_ID() 函数

    LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。

    select @@IDENTITY;

    @@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。

    SHOW TABLE STATUS;

    得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.

参考技术A 必须得有insert在前面

mysql> create table t2(id int not null primary key auto_increment);
Query OK, 0 rows affected (0.05 sec)

mysql> insert into t2 values();
Query OK, 1 row affected (0.05 sec)

mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)

mysql>追问

我是在程序后台代码里执行插入语句的,异常信息:You have an error in your SQL syntax;syntax to use near 'NULL = LAST_INSERT_ID()' at line 1

追答

你这样表述谁都看不懂的啊,不知道你后面怎么写的。
select max(id) from 你试试用这个吧
应该是你用法的问题,你百度下:last_insert_id()函数用法试试

实在不行用proc

Mysql中怎样得到最新insert的一行数据的自动增长列?

想在插入一条数据时返回刚刚插入数据的自动增长列,SqlServer中有个常量可以实现,不在在Mysql 中怎么实现

php方法:mysql_insert_id(); 取得上一步 INSERT 操作产生的 ID
mysql方法:select last_insert_id();
参考技术A 只好用这个办法了 select max(id) from 表 group by id
我知道这个很笨,希望有更好的办法

以上是关于mysql 执行insert返回自增长id的主要内容,如果未能解决你的问题,请参考以下文章

向Mysql主键自增长表中添加数据并返回主键

mycat 主键自增问题

Mycat探索之旅----Mycat的自增长主键和返回生成主键ID的实现

mysql id自动增长 怎么查询最大值

insert to一条记录到access中,数据库会自动产生一个自增长的ID,我想插入之后返回这个ID,请问如何做?

Mysql 中获取刚插入的自增长id的值