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

  • 相关阅读:
    在公司中使用springboot技术的经验
    使用swagger2代替api文档
    第一份正式工作-华为外包。
    zookeeper学习入门
    dubbo入门
    C/C++编程笔记:inline函数的总结!C/C++新手值得收藏!
    刚毕业入职程序员?程序员需注意这 6 点!都是前辈“血的教训”
    你在群里提的技术问题没人回答!是为什么?因为没注意这 4 点!
    程序人生:程序员想要提升英文阅读能力怎么办?实用秘籍推荐!
    程序员必看:长期工作的程序员转眼变油腻大叔!你今天护肤了吗?
  • 原文地址:https://www.cnblogs.com/panie2015/p/5806600.html
Copyright © 2011-2022 走看看