zoukankan      html  css  js  c++  java
  • oracle主键自增

    就是创建一个SEQUENCE,通过它来获取自增ID, 
    CREATE SEQUENCE MY_TABLE_SEQ
    INCREMENT BY 1 -- 每次加几个
    START WITH 1 -- 从1开始计数
    NOMAXVALUE -- 不设置最大值
    NOCYCLE -- 一直累加,不循环
    NOCACHE -- 不建缓冲区
    如何用? 
    插入的时候这样: 
    INSERT INTO MY_TABLE (ID) VALUES (MY_TABLE_SEQ.NEXTVAL);  
    要把当前这个ID返回可以这样: 
    SELECT MY_TABLE_SEQ.CURRVAL FROM DUAL;  
     此时已经可以用了。
     
     
    注意: 
    MY_TABLE_SEQ.CURRVAL 要和 MY_TABLE_SEQ.NEXTVAL配合起来用。 
    先MY_TABLE_SEQ.NEXTVAL了,才能取MY_TABLE_SEQ.CURRVAL。
     
    可以通过程序实现或触发器进一步改善。

    CREATE TRIGGER example_triger BEFORE

    INSERT ON example FOR EACH ROW WHEN (new.id is null)--只有在id为空时,启动该触发器生成id号

    begin

    select

    MY_TABLE_SEQ.nextval into: new.id from dual;

    end;

    
    

    测试一下,插入数据

    
    

    insert into example(name) values('张三');

    insert into example(id, name) values(111,'李四');

     
  • 相关阅读:
    开发mis系统的技术
    Navicat软件与pymysql模块
    5.6作业
    mysql表的查询
    5.5作业
    约束条件
    mysql基本数据类型
    数据库
    网络编程项目
    并发编程四
  • 原文地址:https://www.cnblogs.com/xiaoliu66007/p/7778248.html
Copyright © 2011-2022 走看看