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

获取不同数据库新增记录主键值

 

数据库  获取新增主键值的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()
Cloudscape IDENTITY_VAL_LOCAL()
Derby IDENTITY_VAL_LOCAL()
PostgreSQL SELECT nextval('<Table>_SEQ')

 

如果数据库的并发量很高,那么费Sequence方式通过上面获取的最后插入记录的主键值是不安全的。

 

 对于支持SEQUECE的数据库,就不存在这样的问题了。

 数据库  SEQUECE值的获取方法
Oracle select <SEQUENCE_NAME>.nextval from dual;
DB2 values nextval for <SEQUENCE_NAME>;
PostgreSQL select nextval(<SEQUENCE_NAME>);
时间: 2024-09-04 13:40:54

不同数据库获取新增加的主键值的相关文章

主键值数据类型-informix数据库,不小心把主键值从int8改成float类型了

问题描述 informix数据库,不小心把主键值从int8改成float类型了 informix数据库,不小心把主键值从int8改成float类型了,然后值就变了.有人能帮忙看一下可能原因是什么吗? 解决方案 补充一下,数值由824变成800,转换的是informix数据库的主键值,由int8转为float

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

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

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

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

JSP中如何取得MSSQL数据库表中自动增长的ID主键值?

JSP中如何取得MSSQL数据库表中自动增长的ID主键值? 如:建一个表student有属性列userid,username其中userid为INT类型只读自动加1的主键(也就是每插入一条记录都会自动加1),那么如何在JSP中得到当前插入行的userid值(比如:我向表里插入了三条记录,在我插入第三条记录时userid的值应为3,那么如何得到这个3)? 先创建存储过程: CREATE PROCEDURE addrec   (   @OutID int output,   @Name varcha

oracle数据库表中在没有主键的情况下如何删除重复记录

问题描述 oracle数据库表中在没有主键的情况下如何删除重复记录 数据库表没有主键,没有唯一性约束,如何删除重复记录呢?求大神解答. 解决方案 http://www.cosdiv.com/page/M0/S505/505957.htmlhttp://www.jb51.net/article/35593.htmhttp://www.newhua.com/2012/0106/141377.shtml 上面几篇文章你可以点击进去看看. 如果回答对你有帮助请采纳 解决方案二: delete from

使用CMP Beans生成主键值

Sun Java System Application Server 支持 EJB 1.1.2.0 和 2.1 CMP beans 的自动主键生成.若 要指定自动主键生成,在 ejb-jar-xml 文件中将 prim-key-class 元素的值规定为 java.lang.Object. 具有自动生成主键的 CMP beans 可以参与与其他 CMP beans 的关系.Sun Java System Application Server 不支持数据库生成的主键值. 如果在部署期间创建数据库架

因为相同类型的其他实体已具有相同的主键值。在使用 &quot;Attach&quot; 方法或者将实体的状态设置为 &quot;Unchanged&quot; 或 &quot;Modified&quot; 。。。

因为相同类型的其他实体已具有相同的主键值.在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为.这可能是因为某些实体是新的并且尚未接收数据库生成的键值.在此情况下,使用 "Add" 方法或者 "Added" 实体状态跟踪该图形,然后将非新实体的状态相应设置为 "Unchanged"

Jquery easyui 怎么得到前台的主键值

问题描述 Jquery easyui 怎么得到前台的主键值 Jquery easyui 怎么得到前台的主键值 <t:dgCol title="虚拟中心编号" field="vdnId" queryMode="single" width="120"></t:dgCol> 解决方案 你这个是什么服务器控件,发最终客户端生成的html代码..jquery获取控件自己结合客户端生成的html设置选择器就好 解决