• oracle 数据表中实现字段的自动增长


    由于一直用的是Mysql数据库,今天刚好心血来潮,想着和Java都是同一个老板出来的oracle自己却不会,说出去会不会有点丢人,故就开始翻资料,看视频搞起来,一步一个脚 印,想着写点什么,就开始从创建表开始吧,好了,废话不多说了,开始上正题创建一个表:

    User表:

    create table user(

       id number(5,0) not null primary key auto_increment,

       deptid number(5,0) not null,

       username varchar2(15) not null,

      password varchar2(15) not null,

      ,,,,,,,,,

      constraint fk_deptid foreign key(deptid) references department(id)

    );

    Department表

      create table department(

         id number(5,0) not null  primary key auto_incremnt,

        dept_name varchar2(20) notn ull

    )

    一切就这样顺其自然,感觉自己好牛B呀,两张表,代码一会就敲完了,想想这不是和Mysql创建数据表差不多吗,呵呵呵呵,,,,

     编译SQL 语句,,,怎么可能,怎么可能,竟然报错,再一次检查代码,感觉没有错误啊,再运行,还是报错,,,,oh, my god

    查百度,再发现原来oracle设置自动增长字段不是这样,完全和Mysql的不一样,不一样啊

    好吧,重新创建表:

    User表

    create table user(

    id number(5) not null primary key ,

    deptid number(5) not null,

    username varchar2(20) not null,

    password varchar2(20) not null,

    ,,,,,,

    constraint fk_deptid foreign key(deptid) references department(id),

    constraint un_username unique(username)

    );

    Department表

    create table department(

    id number(5) not null primary key,

    deptname varchar2(20) not null

    );

    第二步,创建一个oracle序列user_increment_sequence

    create sequence user_increment_sequence

        minvalue 1

        maxvalue 999999999

         increment by 1

        start with 1

        nocache;

    第三步,该创建一个触发器user_increment_trigger

    create or replace trigger user_increment_trigger

    before insert 

    for each row

    begin 

    select nextval into :new.id from dual;

    end;

    /

      第四步,检验成果,看是否能让字段自动增加

    向user表中添加 一条数据 

    insert into user values(2,'kkk','kkk','kkk');                  ----------此处的2就外键部门号的字段

    insert into user values(2,'ddd','ddd','ddd');

    查询,得到的数据显示刚好字段是自动增加的,至此,完毕 

  • 相关阅读:
    StringTokenizer与indexOf()和substring()
    如何保证session一致性
    用存储过程实现for循环执行sql语句
    python 字符串替换
    python 基础
    执行env.render()渲染环境时报错get_screens raise NotImplementedError('abstract')
    安装TensorFlow的一些问题
    sqoop
    Hadoop序列化与Java序列化
    RPC
  • 原文地址:https://www.cnblogs.com/sirab415/p/7215498.html
Copyright © 2020-2023  润新知