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.
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 操作产生的 IDmysql方法:select last_insert_id(); 参考技术A 只好用这个办法了 select max(id) from 表 group by id
我知道这个很笨,希望有更好的办法
以上是关于mysql 执行insert返回自增长id的主要内容,如果未能解决你的问题,请参考以下文章
Mycat探索之旅----Mycat的自增长主键和返回生成主键ID的实现