• oracle 字段自增 两段代码搞定


    (这几天做了个小小课程设计时用的是oracle数据库,第一次用,发现oracle和我们以前用的sql server 、mysql是有如此多不同的地方,下面是遇到的问题之一和解决方法,和大家分享下)

    用惯sql server 或 mysql 的同志们都知道,要一个字段自增,在创建表时加一个auto_increment即可,可是oracle则不然,oracle表中字段并没有自增的属性,那id自增怎么办呢?

    没事,还是那句话办法总是有D。好,不废话,直接上源码吧:

    先创建一个序列:

     CREATE SEQUENCE  SEQU_FANGWUXINXI_AUTOINC -- SEQU_FANGWUXINXI_AUTOINC 是序列名
     MINVALUE 1 -- 最小值
     MAXVALUE 9999999999999999999999999999 -- 最大值(这里是表示无上限)
     INCREMENT BY 1  -- 每次自增1
     START WITH 1 -- 从1开始
     nocache; -- 不用高速缓存


    再创建一个触发器:

    create or replace 
    trigger TRIG_FANGWUXINXI_AUTOINC
      before insert on fangwuxinxibiao   -- fangwuxinxibiao 是表名
      for each row
    declare
      nextid number; -- 定义一个中间变量
    begin
      IF :new.FANGWUID IS NULL or :new.FANGWUID = 0 THEN --FANGWUID 是字段名 其中的new是当前使用的表
        select SEQU_FANGWUXINXI_AUTOINC.nextval into nextid from dual; -- dual是一个伪表,百度便知
        :new.FANGWUID := nextid;
      end if;
    end;


    搞定!

    如果有问题,欢迎留言交流,我会的话会尽快回复....

  • 相关阅读:
    redis远程连接超时
    GNU LIBC源代码学习之strcmp
    计算最小生成树
    域名和空间的绑定问题
    Spring MVC 基于Method的映射规则(注解版)
    Spring MVC 基于URL的映射规则(注解版)
    手把手教你编写Logstash插件
    Ruby中如何识别13位的时间戳
    [logstash-input-http] 插件使用详解
    Java直接(堆外)内存使用详解
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3363447.html
Copyright © 2020-2023  润新知