• oracle数据库创建表且主键自增


    唠叨几句:几年前的知识忘却了,整理一下笔记,提供一下方便

    1、创建数据库表 设置主键

    create table users(
      userid number(10) primary key, /*主键,自动增加*/
      username varchar2(20)
    );

    附  删除表:drop table users;

    2、创建序列自增

    CREATE SEQUENCE user_Sequence
      INCREMENT BY 1 -- 每次加几个
      START WITH 1 -- 从1开始计数
      NOMAXVALUE -- 不设置最大值
      NOCYCLE -- 一直累加,不循环
      CACHE 100;
    附  删除序列: DROP SEQUENCE user_Sequence

    创建好序列之后,就手动可以添加数据了,可以多执行几次

    insert into users(userid ,username ) values(user_Sequence.nextval,'范伟');

    查询表数据看看效果

    select userid ,username from users

    3、那么问题来了,在oracle客户端这样操作是可以的。关键是怎么融入到实际开发中呢? 创建触发器试试!!   

    create or replace trigger users_trigger    --users_trigger    触发器名称
    before insert on users                  --users是表名
    for each row
    declare
    nextid number;
    begin
    IF :new.userid IS NULL or :new.userid=0 THEN                 --userid是列名
    select user_Sequence.nextval                                              --user_Sequence 正是刚才创建的序列
    into nextid
    from sys.dual;
    :new.userid:=nextid;
    end if;
    end users_trigger ;                                       --users_trigger  触发器名称

    附 删除触发器:drop trigger users_trigger;

    再次插入数据试试效果吧!!!!

    insert into users(username ) values('本山');

  • 相关阅读:
    linux可执行文件添加到PATH环境变量的方法
    PHPExcel所遇到问题的知识点总结
    如何查看已经安装的nginx、apache、mysql和php的编译参数
    oracle 创建用户及表空间命令
    datetimepicker 设置日期格式、初始化
    Linux 修改系统时间(自动同步)
    Nginx 负载均衡配置
    CenterOS7 安装 Nginx【转】
    java https post请求并忽略证书,参数放在body中
    将.cer证书导入java密钥库?
  • 原文地址:https://www.cnblogs.com/lingduqianli/p/6600229.html
Copyright © 2020-2023  润新知