您的位置:首页 > 数据库

主键增长策略

2016-07-26 14:50 246 查看
主键增长策略:

 

assigned:

 1.表示手动指定主键值

 2.不管数据库中是否支持自动增长语句,该策略都要求程序设置主键值

 3.该策略是没有<generator> 元素时的默认策略

 4.容易出现重复的主键

identity:

 1.适用于Mysql,MS SQLServer等支持自动增长语句的数据库,不支持oracle

 2.适用数据库的自动增长语句来生成主键值,手动设置的主键值不起作用。

 3不会出现主键重复的异常  推荐

sequence:

 1.适用于Oracle数据库,默认Hibernate适用名字为hibernate_sequence的序列来维护主键。

 2.可以使用指定的序列来维护主键,指定方式如下:

 <id name="id" type="java.lang.Long">

            <column name="ID" precision="22" scale="0" />

            <generator class="sequence" >

             <param name="sequence">etoak_seq</param>

            </generator>

        </id>

native:

 1.自动选择

 2.如果底层数据库使用的是MySQL,则native自动相当于identity

   如果底层数据库使用的是Oracle,则native 自动相当于

   sequence

increment:1.先查询最大的ID,然后最大的ID+1作为新的ID添加到数据库中。

 2.并发环境不要使用。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql