oracle:drop table if exists
pl / sql无法使用异常工作。例如,
SQL> SET SERVEROUTPUT ON SQL> BEGIN SQL> EXECUTE IMMEDIATE 'DROP TABLE Foo'; SQL> EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(sqlerrm); SQL> END; SQL> /
Foo表未删除。
create table Foo (id number(20,0), name varchar(20), primary key(id)); create table Bar (id number(20,0), name varchar(20), primary key(id), constraint FK1 foreign key (id) references Foo (id));
有FK约束。
SET CONSTRAINTS ALL DEFERRED; BEGIN EXECUTE IMMEDIATE 'DROP TABLE Foo'; EXCEPTION WHEN OTHERS THEN NULL; END; / SET CONSTRAINTS ALL IMMEDIATE;
表Foo未被删除。
oracle:如果存在pl / sql,则使用异常无法删除表。例如,SQL>在SQL上设置服务器输出>开始SQL>立即执行'DROP TABLE Foo'; SQL>其他时则例外...
怎么样?