zoukankan      html  css  js  c++  java
  • Oracle 判断表或字段是否存在新增/修改表结构可重复执行sql

    DECLARE
    
      num NUMBER;
    BEGIN
    
    	-- 新增学生表 student
    	SELECT
    		COUNT (1) INTO num
    	FROM
    		cols
    	WHERE
    		table_name = UPPER ('student') ;
    	IF num > 0 THEN
    		EXECUTE IMMEDIATE 'DROP TABLE student' ; 
    		EXECUTE IMMEDIATE 'CREATE TABLE student (
    							id NUMBER NOT NULL,
    							name VARCHAR2(40) NULL ,
    							xb VARCHAR2(40) NULL ,
    							age int(3) NULL ,
    							birthday DATE NULL ,
    							className VARCHAR2(80) NULL
    							)' ;
    		EXECUTE IMMEDIATE 'ALTER TABLE student ADD PRIMARY KEY (id)' ;
    	ELSE
    		EXECUTE IMMEDIATE 'CREATE TABLE student (
    							id NUMBER NOT NULL,
    							name VARCHAR2(40) NULL ,
    							xb VARCHAR2(40) NULL ,
    							age int(3) NULL ,
    							birthday DATE NULL ,
    							className VARCHAR2(80) NULL
    							)' ;
    		EXECUTE IMMEDIATE 'ALTER TABLE student ADD CHECK (ID IS NOT NULL)' ;
    		EXECUTE IMMEDIATE 'ALTER TABLE student ADD PRIMARY KEY (ID)' ;
    	END IF ;
    	
    	-- 学生表新增班级 className 字段
    	SELECT COUNT(1)
    		INTO num
    		from cols
    		where table_name = upper('student')
    		 and column_name = upper('className');
    		IF num > 0 THEN
    	execute immediate 'alter table student MODIFY (className varchar2(20))';
    	ELSE
    	execute immediate 'alter table student add className varchar2(40)';
    	END IF;
    	
    END;
    

      

  • 相关阅读:
    Markdown语法
    Hello World
    sql笔试题-1
    解决高版本vm打开虚拟机报错
    zookeeper启动闪退
    java找出1~1000中素数的三种方式
    Java中更精确的计时
    vue系列之调试工具(vue-devtools)
    vue系列之npm命令错误
    vue系列之安装基础环境
  • 原文地址:https://www.cnblogs.com/Big-Boss/p/13255130.html
Copyright © 2011-2022 走看看