如果 NETEZZA 中存在表格,我需要一个删除表格的命令,类似的东西:
drop table if exists xxx;
我已经搜索并尝试了很多,但它没有用。你能帮帮我吗?
答案 0 :(得分:16)
在netezza
中,您可以使用以下语法:
drop table table_name if exists;
答案 1 :(得分:3)
没有内置任何内容,但您可以创建一个存储过程,该过程使用目录视图来检查表是否存在,然后再尝试删除它:
create or replace procedure maybe_drop(varchar(128))
returns boolean
language nzplsql
as
begin_proc
declare
oname alias for $1;
o record;
begin
select otype into o
from (
select 'TABLE' otype from _v_table where tablename = upper(oname)
union all
select 'VIEW' otype from _v_view where viewname = upper(oname)
) x;
if found then
execute immediate 'DROP '||o.otype||' '||oname;
end if;
end;
end_proc;