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>
分享到:
相关推荐
java 利用 jdbc 向 mysql 数据库插入记录并返回插入记录生成的主键值
Mybatis插入数据返回的自增主键会自动设置为插入对象的属性值,因此我们可以通过获取对象的属性获得自增的主键。 1、通过xml配置获取自增主键 xml配置 select last_insert_id() insert into sys_user(username,...
mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是 Oracle Sequece 和 Mysql 自增主键,至于其他的手动生成唯一主键的问题在这里就不讨论了,这里主要说明下...
一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...
当我们插入一行数据时,数据库会为自增字段生成一个新的数值。 我们今天的主题就是自增字段的实现,下表列出了主流数据库中创建自增字段的几种方法: 自增字段实现方式 MySQL Oracle SQL Server PostgreSQL ...
因为自动增长,在手动要插入指定ID的记录时会显得麻烦,尤其是当系统与其它系统集成时,需要数据导入时,很难保证原系统的ID不发生主键冲突(前提是老系统也是数字型的)。特别是在新系统上线时,新旧系统并行...
今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql> CREATE TABLE test -> ( ...
按照mp的官网介绍,使用mp的insert方法,对于自增的数据库表,mp会把主键写入回实例的对应属性。但实际操作起来,却没有主键。 entity 类设置如下: @TableName(value = "USERINFO") public class UserInfo { /**...
小A正在balabala写代码呢,DBA小B突然发来了一条消息,“快看看你的用户特定信息表T,里面的主键,也就是自增id,都到16亿了,这才多久,在这样下去过不了多久主键就要超出范围了,插入就会失败,balabala……” ...
支持多主键,单一主键,自增主键数据表创建 支持模型黑名单. 可以自定义部分字段不进行数据库存储操作. 支持模型字段自定义序列化. 无需手动创建数据表. 无需考虑数据库字段整添,自动处理数据库升级.免去升级烦恼. ...
为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现重复,我希望的是uid,year,mounth,day 这三个字段...
1、为什么要尽量设定一个主键?...总之,在数据量大一些的情况下,用自增主键性能会好一些。 3、字段为什么要求定义为not null? null值会占用更多的字节,且会在程序中造成很多与预期不符的情况。
传统的关系型数据库要实现起来是非常容易,只要直接设置一个自增字段就行了,插入数据时不用管这个键值,只管自己处理的数据就行了,会自动实现自增的功能,但是非关系型数据库好像没有这个功能(或者我不知道)。...
获得刚刚插入数据库的自增id Sql注入攻击(避免方式?) 如何使用迭代生成树形菜单 单例模式(单例模式的创建) DataTable的使用 类SqlDataAdapter的使用(重点) 类SqlCommandBuilder的使用(注意:他必须操作的是有主键的...
前言 在前面两篇博客中,我们介绍了对于select语句的简单映射和嵌套映射。mybatis中使用ResultHandler等一系列的类,...当我们有业务需求要获取插入时产生的自增主键(或者其他类型不由程序生成的主键)时,则可以使用
这里有一种可能,即业务逻辑包含更新自增主键的代码,由于mysql的update动作不会同时更新自增列值,若更新主键值比自增列大,也会导致上述现象:记录最大值比自增主键值大。但开发反馈说这张表仅仅存在load data ...
mysql雪花算法生成唯一整型ID主键的实现方法,整型ID作为主键好处有很多,比如节省存储空间、插入和查询排序快、具有一定规律性(时间顺序)等。
在往数据库表中添加一行的时候,要针对自增列插入一个特定值的时候,这个函数就很有用了,比如表结构如: id | text 1 | a 2 | b 4 | d 其中id列是自曾列,如果我们要插入3 | c的话,如果没有打开...
1、把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: 代码如下:create table customers(id int auto_increment primary key not null, name...
auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。 4、 foreign key 约束 外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照...