`
qstar
  • 浏览: 32777 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

各种数据库插入数据时获得当前自增主键的方法

阅读更多

1. oracle数据库

    

<insert id="addRecord" parameterClass="Record">		
<selectKey keyProperty="id" resultClass="int" type="pre">
			select
			seq_record.nextval as id from dual
		</selectKey>
		insert into record(id, title, creator,create_time)
		values(#id#,#title#,#creator#,#create_time#)
</insert>
  

2. mysql数据库

 

<insert id="saveWidget" parameterClass="WidgetModel">		
    insert into widget(name, type, description)
    values(#name#, #type#, #description#)
    <selectKey resultClass="int" keyProperty="id">  
        SELECT LAST_INSERT_ID() AS ID 
    </selectKey>
</insert>

 

3. ms sql server

    

<insert id="saveWidget" parameterClass="WidgetModel">  
  <selectKey resultClass="int" keyProperty="id">    
        insert into widget(name, type, description)
        values(#name#, #type#, #description#)  
        SELECT SCOPE_IDENTITY() AS ID
    </selectKey>    
</insert>
 
分享到:
评论

相关推荐

    jdbc 插入记录并返回自增主键值

    java 利用 jdbc 向 mysql 数据库插入记录并返回插入记录生成的主键值

    最新Mybatis插入数据返回自增主键详细配置

    Mybatis插入数据返回的自增主键会自动设置为插入对象的属性值,因此我们可以通过获取对象的属性获得自增的主键。 1、通过xml配置获取自增主键 xml配置 select last_insert_id() insert into sys_user(username,...

    mybatis自增主键文档

    mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是 Oracle Sequece 和 Mysql 自增主键,至于其他的手动生成唯一主键的问题在这里就不讨论了,这里主要说明下...

    oracle数据库主键自增并且返回主键值

    一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...

    【总结】数据库自增字段的 3 种实现方式

    当我们插入一行数据时,数据库会为自增字段生成一个新的数值。 我们今天的主题就是自增字段的实现,下表列出了主流数据库中创建自增字段的几种方法: 自增字段实现方式 MySQL Oracle SQL Server PostgreSQL ...

    数据库主键的设计和思考

     因为自动增长,在手动要插入指定ID的记录时会显得麻烦,尤其是当系统与其它系统集成时,需要数据导入时,很难保证原系统的ID不发生主键冲突(前提是老系统也是数字型的)。特别是在新系统上线时,新旧系统并行...

    oracle迁移mysql自增序列问题

    今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql&gt; CREATE TABLE test -&gt; ( ...

    详解mybatis plus使用insert没有返回主键的处理

    按照mp的官网介绍,使用mp的insert方法,对于自增的数据库表,mp会把主键写入回实例的对应属性。但实际操作起来,却没有主键。 entity 类设置如下: @TableName(value = "USERINFO") public class UserInfo { /**...

    mysql自增id超大问题的排查与解决

    小A正在balabala写代码呢,DBA小B突然发来了一条消息,“快看看你的用户特定信息表T,里面的主键,也就是自增id,都到16亿了,这才多久,在这样下去过不了多久主键就要超出范围了,插入就会失败,balabala……” ...

    ios-GDatabase--基于ORM的FMDB数据库存储解决方案. 面向模型API. 一句代码存储,读取.对存储模型无需继承BaseObject. 可自定义多主键,使用sqlite 关键字.自定义序列化字段等.极大方便项目中使用..zip

    支持多主键,单一主键,自增主键数据表创建 支持模型黑名单. 可以自定义部分字段不进行数据库存储操作. 支持模型字段自定义序列化. 无需手动创建数据表. 无需考虑数据库字段整添,自动处理数据库升级.免去升级烦恼. ...

    完美解决Thinkphp3.2中插入相同数据的问题

    为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现重复,我希望的是uid,year,mounth,day 这三个字段...

    MySQL经典面试题29道

    1、为什么要尽量设定一个主键?...总之,在数据量大一些的情况下,用自增主键性能会好一些。 3、字段为什么要求定义为not null? null值会占用更多的字节,且会在程序中造成很多与预期不符的情况。

    Python+MongoDB自增键值的简单实现

    传统的关系型数据库要实现起来是非常容易,只要直接设置一个自增字段就行了,插入数据时不用管这个键值,只管自己处理的数据就行了,会自动实现自增的功能,但是非关系型数据库好像没有这个功能(或者我不知道)。...

    数据库和ado知识

    获得刚刚插入数据库的自增id Sql注入攻击(避免方式?) 如何使用迭代生成树形菜单 单例模式(单例模式的创建) DataTable的使用 类SqlDataAdapter的使用(重点) 类SqlCommandBuilder的使用(注意:他必须操作的是有主键的...

    Mybatis源码阅读(三):结果集映射3.3 —— 主键生成策略

    前言 在前面两篇博客中,我们介绍了对于select语句的简单映射和嵌套映射。mybatis中使用ResultHandler等一系列的类,...当我们有业务需求要获取插入时产生的自增主键(或者其他类型不由程序生成的主键)时,则可以使用

    深入探寻mysql自增列导致主键重复问题的原因

     这里有一种可能,即业务逻辑包含更新自增主键的代码,由于mysql的update动作不会同时更新自增列值,若更新主键值比自增列大,也会导致上述现象:记录最大值比自增主键值大。但开发反馈说这张表仅仅存在load data ...

    mysql雪花算法生成唯一整型ID主键的实现方法

    mysql雪花算法生成唯一整型ID主键的实现方法,整型ID作为主键好处有很多,比如节省存储空间、插入和查询排序快、具有一定规律性(时间顺序)等。

    SQL Server 打开或关闭自增长

    在往数据库表中添加一行的时候,要针对自增列插入一个特定值的时候,这个函数就很有用了,比如表结构如:  id | text  1 | a  2 | b  4 | d 其中id列是自曾列,如果我们要插入3 | c的话,如果没有打开...

    深入Mysql,SqlServer,Oracle主键自动增长的设置详解

    1、把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: 代码如下:create table customers(id int auto_increment primary key not null, name...

    mysql数据库的基本操作语法

    auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。 4、 foreign key 约束 外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照...

Global site tag (gtag.js) - Google Analytics