mysql insert语句后如何获取insert数据的主键值自动编号

关于mysql教程 insert语句后如何获取insert数据的主键值自动编号呢,

方法很简单的,mysql数据自带的了mysql_insert_id ( );函数

使用方法:

insert into(a')values('b')

$nid = mysql_insert_id ( );

方法二:

LAST_INSERT_ID(),不过关于这个函数,与mysql_insert_id()比较有很多的区别,mysql_insert_id ()是直接获取当前session的insert_id,而LAST_INSERT_ID()是SQL函数,
需要通过执行SQL来获得,如:SELECT LAST_INSERT_ID();显然这两个效果是一样的,
但执行一次SQL要耗费很多资源,不如直接通过mysql_insert_id()获得内存中的值快得多

时间: 2024-09-20 16:21:31

mysql insert语句后如何获取insert数据的主键值自动编号的相关文章

ado.net-c#通过SqlDataAdapter获取数据库数据,主键自增长值与datatable内对应字段值不同

问题描述 c#通过SqlDataAdapter获取数据库数据,主键自增长值与datatable内对应字段值不同 当删除表内最后一条数据后,通过SqlDataAdapter增加一条数据.表主键ID的值比SqlDataAdapter操作的datatable内ID多1. 问题关键是,当我要删除一行记录时,datatable的ID也就不能当做条件来用了,他的值不一定是正确的. 解决方案 参考:http://blog.csdn.net/pfe_Nova/article/details/41378819 解

不同数据库获取新增加的主键值

获取不同数据库新增记录主键值   数据库  获取新增主键值的SQL语句 DB2 INENTIY_VAL_LOCAL() Informix SELECT dbinfo('sqlca.sqlerrd1') FROM <Table> Sybase SELECT @@IDENTITY SQL Server SELECT SCOPE_IDENTITY()或SELECT @@IDENTITY MySQL SELECT LAST_INSERT_ID() HsqlDB CALL IDENTITY() Clou

MyBatis获取自增长主键值的两种方式及源码浅析

昨天在做项目的时候遇到了一个坑,没错,就是获取MyBatis自增长主键值的坑.因为之前一直用ibatis,所以惯性的用了ibatis的写法,结果返回的值一直是1(受影响的行数).于是去翻了翻MyBatis的源码,发现它把主键值放到了参数对象上,获取主键值需要用参数对象去get主键值.真是坑.我先把解决办法放出来,然后再接着分析MyBatis的源码是怎么做的. 环境: 数据库MySql.User表,主键设置为自增长. CREATE TABLE `user` ( `id` INT(11) NOT N

MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程_Mysql

Email里面收到朋友laopan的求助 laopan:insert into HudsonResult(JobID,EnvironmentID,FirstSessionID,RerunSessionID,State,Desp,OtherInfo) values ((select ID from Hudson where Stream='A7510_R52_Integration' and State='N' and pakName='needCompile' and User='jinhaiz

nhibernate中,新增一条数据,主键id为自增,添加成功后,如何获取此id值

问题描述 nhibernate中,新增一条数据,主键id为自增,添加成功后,如何获取此id值 解决方案 解决方案二:实体.id?解决方案三:哥们,我刚刚接触nhibernate,刚写出来helloworld,这个问题还没研究出来的.而且貌似nh做的项目许多主键都没有自增的.我手头有个项目就是这样的,我也很苦恼.在csdn上研究这个的好像很少.解决方案四:就是类似存储过程insert后,能返回他的自增Id值在nhibernate里可不可以?不想再重新去find解决方案五:帮你顶解决方案六:只知道S

mysql插入数据时失败但是主键id自动增加了一该如何解决

问题描述 mysql插入数据时失败但是主键id自动增加了一该如何解决 插入时因重复导致插入失败会导致id自增,第二次插入其它数据时会在会变成id加了两次的情况 解决方案 配置一下事务,如果出现异常情况则数据库进行回滚 解决方案二: 重复是指别的字段重复了是吧 解决方案三: 1.在保存前要有数据的正确性校验处理 2.插入数据操作改成存储过程,检查是否有重复 解决方案四: 建议使用事务来进行持久化的处理,这样可能就不会出错了.希望对你有用 解决方案五: 自增是这样的,,如果失败回自动加一,,但数据不

oracle 数据按主键删除慢问题的解决方法_oracle

问题描述: 根据表主键id删除一条数据,在PL/SQL上执行commit后执行时间都大于5秒.!!! 问题分析: 需求是删除一个主表A,另有两个附表建有此表的主键ID的外键.删除A表的数据级联删除另两个表的关联数据.增删改查使用hibernate实现. 一开始一直以为是hibernate的内部处理上有关联操作导致的删除和更新数据缓慢.所以将原先使用hibernate的saveOrupdate方法,改查jdbc的 sql语句来处理update和delete数据操作.但是依然没效果!!! 怀疑数据库

java 后台获取mybatis自增主键

问题描述 java 后台获取mybatis自增主键 现在java后台执行insert操作想获取 mybatis里这条插入语句的自增主键 SELECT LAST_INSERT_ID() AS source_id insert into tenke_pick_resource (url path name size heightwidthformatstatus) values (#{urljdbcType=VARCHAR} #{pathjdbcType=VARCHAR} #{namejdbcTyp

使用GUID作为数据表主键的好处

guid|数据 使用GUID作为数据表主键的好处  数据表主健通常采用以下三种方式:   1.         自动递增值. 2.         唯一名称.这个是使用自己定义的算法来生成一个唯一序列号. 3.         GUID(全局唯一标识符).  GUID与自动递增值及唯一名称比较GUID在客户端生成,由GUID的特性决定,通过GUID生成的值可能出现重复的机会几乎等于零,因此保证在插入表的时候主键值唯一. 可以方便处理分布式数据的提交,比如:分店数据向总店提交――直接将该部分数据插