• 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   作为主键插入值

  • 相关阅读:
    Educational Codeforces Round 20 D. Magazine Ad
    Educational Codeforces Round 20 C. Maximal GCD
    紫书第三章训练2 暴力集
    Educational Codeforces Round 20 B. Distances to Zero
    Educational Codeforces Round 20 A. Maximal Binary Matrix
    紫书第三章训练1 D
    紫书第一章训练1 D -Message Decoding
    HAZU校赛 Problem K: Deadline
    Mutual Training for Wannafly Union #8 D
    紫书第三章训练1 E
  • 原文地址:https://www.cnblogs.com/panie2015/p/5806600.html
Copyright © 2020-2023  润新知