精华内容
下载资源
问答
  • 给大家分享MyBatis Oracle 自增序列的实现方法及mybatis配置oracle的主键自增长的方法,非常不错具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
  • ORACLE自增序列

    千次阅读 2020-04-30 20:40:28
    今天正式环境新增数据异常,排查后是oracle主键id已存在。...1.删除自增序列 DROP SEQUENCE SEQ_TT_SECNET_MAINTAIN_INFO 一般命名为SEQ_表名。 2.重新定义自增序列 create sequence SEQ_TT_SECNET_MAINTAIN...

    今天正式环境新增数据异常,排查后是oracle主键id已存在。并未实现自增。

    原来之前导入一批数据,手动添加了id,导致id重复问题。

    解决方法

    1.删除自增序列

    DROP SEQUENCE SEQ_TT_SECNET_MAINTAIN_INFO

    一般命名为SEQ_表名。

     

    2.重新定义自增序列

    create sequence SEQ_TT_SECNET_MAINTAIN_INFO  --序列名
        increment by 1               --    步长
        start with 2000                    --起始值
        minvalue 1                       --最小值
        maxvalue 99999               --最大值
    --     nocycle                           --是否循环
    --     nocache;                             --    是否缓存

    可以看到我们新增数据修复了。

     

    3.以后导入数据使用自增序列

    insert into TT_SECNET_MAINTAIN_INFO (MAINTAIN_ID,REMARK) VALUES(SEQ_TT_SECNET_MAINTAIN_INFO.nextval,'测试序列0430');
    
    


    小结:

    -- 查看当前所有序列名称
    select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences ;
    -- 查看当前数据库用友的序列名称
    select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences where  sequence_owner='GAMC_DCS'; 
    
    -- 删除自增序列
    DROP SEQUENCE SEQ_TT_SECNET_MAINTAIN_INFO
    
    -- 创建自增序列
    create sequence SEQ_TT_SECNET_MAINTAIN_INFO  --序列名
        increment by 1               --    步长
        start with 2000                    --起始值
        minvalue 1                       --最小值
        maxvalue 99999               --最大值
    --     nocycle                           --是否循环
    --     nocache;                             --    是否缓存
    
    -- 使用自增序列
    insert into TT_SECNET_MAINTAIN_INFO (MAINTAIN_ID,REMARK) VALUES(SEQ_TT_SECNET_MAINTAIN_INFO.nextval,'测试序列0430');
    
    

     

     

     

    展开全文
  • 这里写自定义目录标题oracle自增序列及其触发器创建序列创建触发器序列的查询更改删除引用资源 oracle自增序列及其触发器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown...

    oracle自增序列及其触发器

    迁移数据库mysql–>oracle,Oracle中没有mysql中的自增功能,使用序列及触发器实现

    创建序列

    create sequence userid_sequence --序列名 (userid_sequence 为序列名,随便取名)­
    increment by 1 --每次增加1 ­
    start with 1 --从1开始 ­
    nomaxvalue --没有最大值 ­
    nocache --没有缓存序列­ 或者 cache 20 缓存 20个
    nocycle --不循环

    使用序列插入数据:
    INSERT INTO sys_user VALUES(userid_sequence.nextval , ‘王小明’,‘小明’,…)

    创建触发器

    或者创建触发器,每次插入数据时可将对应自增字段置为空,触发器会自动填充相应字段:

    create or replace trigger userid_increase --(userid_increase) 触发器名称
    before insert
    on sys_user – (sys_user)表名称
    for each row – for each row : 对表的每一行触发器执行一次
    begin
    select userid_sequence.nextval into :new.user_id from dual; – (new.user_id)new 等于新插入的一行, user_id 是表中要实现自增的主键列
    end;

    序列的查询更改删除

    查询:
    select userid_sequence.currval from dual; --查询当前的序列值
    select userid_sequence.nextval from dual; --查询当前自增后的序列
    select * from dba_sequences where sequence_owner=‘用户名’ --查询所有序列

    更改:
    alter sequence userid_sequence
    increment by 1
    start with 100
    nomaxvalue;

    删除:
    drop sequence userid_sequence;

    删除触发器:
    drop trigger userid_increase

    引用资源

    本片参考的文献及网页

    https://blog.csdn.net/lllllmc/article/details/80164224

    展开全文
  • oracle自增序列

    2016-05-24 05:51:10
    自增序列
  • Mybatis Plus 3 oracle 自增序列

    千次阅读 2020-06-11 16:57:59
    Mybatis Plus 3,oracle 自增序列配置 config.yml 配置文件 #mybaits-plus配置,修改主键类型,mapper.xml、type 别名等 mybatis-plus: mapper-locations: classpath:/mapper/*Mapper.xml global-config: #主键...

    Mybatis Plus 3,oracle 自增序列配置

    1. config.yml 配置文件
    #mybaits-plus配置,修改主键类型,mapper.xml、type 别名等
    mybatis-plus:
      mapper-locations: classpath:/mapper/*Mapper.xml
      global-config:
        #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
        id-type: 1
        # Sequence序列接口实现类配置
        key-generator: com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator
    
    
    1. MybatisPlusConfigurer.java 配置
    @Configuration
    @MapperScan("user.mapper")
    public class MybatisPlusConfigurer {
    
    	/**
    	 * Sequence主键自增
    	 *
    	 * @return 返回oracle自增类
    	 * @author zhenggc
    	 * @date 2019/1/2
    	 */
    	@Bean
    	public OracleKeyGenerator oracleKeyGenerator(){
    		return new OracleKeyGenerator();
    	}
    }
    
    
    1. 实体配置
    @TableName("T_USER")
    @KeySequence(value = "SEQ_USER", clazz = Integer.class)
    public class User extends Model<User> {
    
        private static final long serialVersionUID = 1L;
    
        /**
         * 用户ID
         */
        @TableId(value = "USER_ID", type = IdType.INPUT)
        private Integer userId;
    }
    
    展开全文
  • 第一种方法: 1、注入bean keyGenerator(使用@Bean(name="keyGenerator_")是防止微服务架构时bean冲突) ...实体类名上注解@KeySequence(value = "序列名", clazz = Integer.class) 设置主键(主键生成策略必
    第一种方法:
    1、注入bean keyGenerator(使用@Bean(name="keyGenerator_")是防止微服务架构时bean冲突)
    @Bean(name="keyGenerator_")
    public IKeyGenerator keyGenerator() {
    return new OracleKeyGenerator();
    }
    
    2、实体类设置:
    实体类名上注解@KeySequence(value = "序列名", clazz = Integer.class)
    设置主键(主键生成策略必须使用INPUT)
    
    @KeySequence(value = "序列名", clazz = Integer.class)
    public class User {
        @TableId(value = "L_ID", type = IdType.INPUT)
        private Integer id;
    }
    
    3、使用时,service必须继承mybatis-plus的IService<>、serviceImpl必须实现mybatis-plus的ServiceImpl<>并调用mybatis-plus自带的api,如:save()方法并传入对应的实体类对象即可实现ID自增:
    例:userService.save(user);
    
    4、oracle数据库中创建序列;
    -----------------------------------------------------------------------------------------
    第二种方法(在xml中使用 “序列名.nextval” 获取序列):
    INSERT INTO User (id, name, age) VALUES (序列名.nextval, #{name, jdbcType=String}, #{age, jdbcType=INTEGER},);
    
    展开全文
  • 1.创建序列 create sequence seq_name INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 MAXVALUE 最大值 例如:MAXVALUE 99999 NOCYCLE -- 一直累加,不循环 CYCLE 从头...
  • 今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql> CREATE TABLE test -> ( ...
  • Oracle自增序列

    2020-11-01 18:46:36
    一个序列的值是由特别的Oracle程序自动生成,因而序列避免了在运用层实现序列而引起的性能瓶颈。 SQL如下(示例): CREATE sequence seq_tableName increment BY 1 START WITH 1 MAXVALUE 99999999 minvalue 1 ...
  • 最近项目中循环需要序列生成多个值,但是获取到的值始终只有一个 SELECT PM_HINL_S.NEXTVAL AS ID FROM DUAL 最后才发现是Mybatis的缓存导致,添加useCache="false" flushCache="true"这样就可以正常取值,而不是...
  • 一键生成Oracle自增序列和触发器,方便Oracle sql的编写加快代码编写速度。
  • 基本背景 oracle 有 sequence trigger 希望在新增的时候获取到新增这条记录的...一、实现主键自增oracle数据库中,主键并没有办法自动增长,无法使用insert对应的useGeneratedKeys和keyProperty属性自动返回增加的主
  • Hibernet 实体类 支持Oracle数据库主键自增代码如下: @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "***_SEQ") @SequenceGenerator(name = "****_SEQ", sequenceName = "***_SEQ") ...
  • oracle创建自增序列

    千次阅读 2019-11-15 21:45:14
    Oracle中,当需要建立一个自增字段时,需要用到sequence。sequence也可以在mysql中使用,但是有些差别,日后再补充,先把oracle中sequence的基本使用总结一下,方便日后查阅。 在oracle中sequence就是序号,每次取...
  • oracle 自增序列实现 可作为主键

    千次阅读 2014-11-21 10:16:55
    好记性不如烂笔头 记录如何建立oracle 自增序列
  • oracle自增序列创建

    2019-03-27 15:46:48
    查询oracle所有的自增序列 select sequence_name,min_value,max_value,last_number from user_sequences 创建一个自增序列 create sequence SEP_HY_DIFF_ACCOUNT_UPLOAD 自增序列名称 minvalue 1 最小值 maxvalue...
  • 一、Mybatis Plus 2,oracle 自增序列配置 1. config.yml 配置文件 #mybaits-plus配置,修改主键类型,mapper.xml、type 别名等 mybatis-plus: mapper-locations: classpath:/mapper/*Mapper.xml global-config: ...
  • Oracle使用序列创建自增字段,自增长列。
  • 那如何实现Oracle的主键自增呢,这里我们记录一种最常用的方式:sequence + trigger。 就是利用Oralce的序号和触发器来实现字段的自增,下面直接来看一个完整的例子。 一、创建表结构 这里我们简单创建一张表...
  • Oracle自增序列字段

    2017-03-21 16:26:04
    个人学习 先创建sequence create sequence human_bi_xq_seq increment by 1 start with 1  minvalue 1 maxvalue 9999999999999 nocache  ...create or replace trigger human_bi_xq_trigge
  • oracle 实现自增序列

    2017-08-26 11:09:51
    一 丶新建一个表: CREATE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME VARCHAR...二 丶建一个序列: CREATE SEQUENCE example_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAX
  • –查看序列 select * from user_sequences;–当前用户下创建的序列 select * from all_sequences;–查看所有序列 –创建序列 /* create sequence 序列名 [可选参数] (序列名常定义为‘seq_XXX’的形式,创建序列不...
  • ORACLE 自增序列

    2012-10-18 13:36:24
    以下部分处理自增序列问题 --自增序列 --第一步:建一个队列 Create Sequence AAA_OID _sequence INCREMENT BY 1 --每次加几个 START WITH 1 --从1开始计数 NOMAXVALUE --不设置最大值 NOCYCLE --一直累加,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,816
精华内容 5,926
关键字:

oracle自增序列