删除如果存在于netezza中

时间:2014-10-29 06:39:55

标签: if-statement exists netezza

如果 NETEZZA 中存在表格,我需要一个删除表格的命令,类似的东西:

drop table if exists xxx;

我已经搜索并尝试了很多,但它没有用。你能帮帮我吗?

2 个答案:

答案 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;