zoukankan      html  css  js  c++  java
  • oracle创建表之前判断表是否存在,如果存在则删除已有表

    Mysql 创建表之前判断表是否存在,如果存在则删除已有表

    DROP TABLE IF EXISTS sys_area;
    
    CREATE TABLE sys_area
    (
    	id int NOT NULL AUTO_INCREMENT COMMENT '编号',
    	parent_id varchar(64) NOT NULL COMMENT '父级编号',
    	parent_ids varchar(2000) NOT NULL COMMENT '所有父级编号',
    	name varchar(100) NOT NULL COMMENT '名称',
    	sort decimal(10,0) NOT NULL COMMENT '排序',
    	code varchar(100) COMMENT '区域编码',
    	type char(1) COMMENT '区域类型',
    	create_by varchar(64) NOT NULL COMMENT '创建者',
    	create_date datetime NOT NULL COMMENT '创建时间',
    	update_by varchar(64) NOT NULL COMMENT '更新者',
    	update_date datetime NOT NULL COMMENT '更新时间',
    	remarks varchar(255) COMMENT '备注信息',
    	del_flag char(1) DEFAULT '0' NOT NULL COMMENT '删除标记',
    	PRIMARY KEY (id)
    ) COMMENT = '区域表';
    

      MySql 自增长  AUTO_INCREMENT

    Oracle 创建表之前判断表是否存在,如果存在则删除已有表

    declare 
          num   number;
    begin 
    	select count(1) into num from user_tables where table_name = upper('sys_area') ; 
    	if num > 0 then 
    		execute immediate 'drop table sys_area' ; 
    	end if; 
    end;
    
    -- 区域表
    CREATE TABLE sys_area
    (
    	id Number(4) NOT NULL,
    	parent_id varchar2(64) NOT NULL,
    	parent_ids varchar2(2000) NOT NULL,
    	name nvarchar2(100) NOT NULL,
    	sort number(10,0) NOT NULL,
    	code varchar2(100),
    	type char(1),
    	create_by varchar2(64) NOT NULL,
    	create_date timestamp NOT NULL,
    	update_by varchar2(64) NOT NULL,
    	update_date timestamp NOT NULL,
    	remarks nvarchar2(255),
    	del_flag char(1) DEFAULT '0' NOT NULL,
    	PRIMARY KEY (id)
    );
    

     

    Oracle 定义主键 自增长,需要定义一个序列

    create sequence seq_sys_area
    minvalue 1        --最小值
    nomaxvalue        --不设置最大值
    start with 1      --从1开始计数
    increment by 1    --每次加1个
    nocycle           --一直累加,不循环
    nocache;          --不建缓冲区
    

    以上代码完成了一个序列(sequence)的建立过程,名称为SEQ_TEST,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环.对于nocache顺便说一下如果你给出了cache值那么系统将自动读取你的cache值大小个seq,这样在反复操作时会加快运行速度,但如果遭遇意外情况如当机了或oracle死了,则下次取出的seq值将和上次的不连贯.(如果连不连贯无所谓建议用cache,因为时间就是金钱呀!) 

     seq_sys_area.nextval   作为主键插入值

  • 相关阅读:
    BZOJ 3997: [TJOI2015]组合数学 [偏序关系 DP]
    [Sdoi2017]新生舞会 [01分数规划 二分图最大权匹配]
    [Sdoi2017]相关分析 [线段树]
    [Sdoi2017]硬币游戏 [高斯消元 KMP]
    [Sdoi2017]序列计数 [矩阵快速幂]
    [Sdoi2017]树点涂色 [lct 线段树]
    [Sdoi2017]数字表格 [莫比乌斯反演]
    BZOJ 3160: 万径人踪灭 [fft manacher]
    Rabbitmq常见测试
    MQ(消息队列)功能介绍
  • 原文地址:https://www.cnblogs.com/panie2015/p/5806600.html
Copyright © 2011-2022 走看看