[英]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.