簡體   English   中英

11gR2中帶有Oracle DROP TABLE的腳本

[英]Script with Oracle DROP TABLE in 11gR2

我對查詢有點困惑。 我遇到錯誤,但是可以正常工作。 我在命令提示符下使用ORACLE 11gR2。 我用主鍵和外鍵創建了2個表dp(部門)和em(員工)。 如果我運行腳本兩次,則DROP TABLE函數會嘗試刪除該表2次,但只能嘗試一次。 您能告訴我為什么會這樣嗎? 我的腳本如下。

cl scr

DROP TABLE dp CASCADE CONSTRAINT ;
L
// DROP TABLE dp PURGE ;
L
CREATE TABLE dp (
    dpid    NUMBER(2),
    dname   VARCHAR2(20));

DROP TABLE em PURGE ;
CREATE TABLE em (
    emid    NUMBER(2),
    ename   VARCHAR2(20),
    dpid    NUMBER(2));

ALTER TABLE dp
ADD CONSTRAINT pk_dp_dpid PRIMARY KEY (dpid) ;

ALTER TABLE em
ADD CONSTRAINT fk_em_dp_dpid FOREIGN KEY (dpid)
REFERENCES dp (dpid) ;

不用在運行后使用L來打印行,而是在腳本頂部使用set echo on

//在SQL * Plus中不是注釋標記,恰恰相反: /重新執行您輸入的上一個命令(顯然會忽略之后的命令)。 因此,您的腳本將重新執行第一滴。

使用--進行評論。

這是一個愚蠢的錯誤,也是我的誤解。 ORACLE沒有嘗試兩次刪除。 它僅下降了一次(應該如此),但是在腳本中我寫了兩次“ L”,因此它兩次顯示了嘗試。 無論如何,更新的代碼如下。

cl scr

DROP TABLE dp CASCADE CONSTRAINT ;
L
CREATE TABLE dp (
    dpid    NUMBER(2),
    dname   VARCHAR2(20));

DROP TABLE em PURGE ;
CREATE TABLE em (
    emid    NUMBER(2),
    ename   VARCHAR2(20),
    dpid    NUMBER(2));

ALTER TABLE dp
ADD CONSTRAINT pk_dp_dpid PRIMARY KEY (dpid) ;

ALTER TABLE em
ADD CONSTRAINT fk_em_dp_dpid FOREIGN KEY (dpid)
REFERENCES dp (dpid) ;

感謝Mat和所有人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM