Oracle資料庫建表前,先判斷是否表存在,存在不建表,不存在則建表
阿新 • • 發佈:2018-11-26
------建立TABNAME ----------
DECLARE
TOTAL INT := 0;
BEGIN
SELECT COUNT(1)
INTO TOTAL
FROM USER_TABLES A
WHERE A.TABLE_NAME = 'TABNAME ';
IF TOTAL > 0 THEN
EXECUTE IMMEDIATE 'DROP TABLE TABNAME ';
END IF;
END;
/
CREATE TABLE TABNAME (
---具體建表語句
);
alter table TABNAMEadd constraint PK_TABNAME_ID primary key(id);
具體講解:
1、END;下面那行的斜槓“/”必須有哦,我開始就是沒有這個斜槓,一直報建表語句有錯,這個斜槓表示上面的語句執行結束
2、把上面的TABNAME換成自己的表名就ok了
3、最後的alter是建立表的主鍵
4、本示例是在user_tables系統表中查詢是否存在要建的表,其實還可以在all_tables中查詢,但是這樣寫必須在where中加owner=‘使用者名稱’。例如:下面SCOTT換成自己使用者名稱,也就是表的擁有者(連線資料的user)
declare num number; begin select count(1) into num from all_tables where TABLE_NAME = 'EMP' and OWNER='SCOTT'; if num>0 then execute immediate 'drop table EMP'; end if; end;