如何在Postgres中基于IF条件删除表?

成员之声

我试图根据条件在启动时删除表:

IF NOT EXISTS (select * from pg_class where relname = 'mytable' and relpersistence = 'u') 
DROP TABLE IF EXISTS mytable

结果:Syntaxerror at 'IF', SQL state: 42601为什么?如果不允许使用表,如何根据条件删除表IF

a_horse_with_no_name

IF 不能在SQL中使用,仅对PL / pgSQL有效。

您需要使用匿名PL / pgSQL块中的动态SQL来执行此操作。就像是:

do
$$
declare
  l_count integer;
begin
  select count(*)
     into l_count
  from pg_class c
    join pg_namespace nsp on c.relnamespace = nsp.oid
  where c.relname = 'mytable' 
    and c.relpersistence = 'u'
    and nsp.nspname = 'public';

  if l_count = 1 then 
    execute 'drop table mytable';
  end if;

end;
$$

您可能应该扩展select语句以加入pg_namespace并在您的where条件中包括模式名称,以确保您不会意外从错误的模式中删除表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在VBA中基于2列的条件删除行?

来自分类Dev

如何在laravel中基于多个where条件删除记录作为数组

来自分类Dev

如何在Python中基于两个数据框删除未完全填充条件的行?

来自分类Dev

如何在SQL Server中基于联结表使用CASE条件?

来自分类Dev

如何在 SQL 中查询表以生成基于条件垂直堆叠列名的结果?

来自分类Dev

如何基于Postgres中的日期从表中检索记录

来自分类Dev

如何在 postgres 中删除超级用户

来自分类Dev

如何基于javascript中的条件从数组中删除重复的对象

来自分类Dev

如何在postgres中哈希整个表?

来自分类Dev

如何基于NULL条件在SQL中删除行

来自分类Dev

如何在表中添加此条件?

来自分类Dev

如何在连接表中添加条件?

来自分类Dev

如何删除Postgres中特定架构中的每个表?

来自分类Dev

如何在html表中删除空间

来自分类Dev

如何在SQLAlchemy中删除表?

来自分类Dev

如何在RDS中删除孤立的表

来自分类Dev

如何在PostgreSQL中删除表

来自分类Dev

如何在RDS中删除孤立的表

来自分类Dev

如何在SQLAlchemy中删除多个表

来自分类Dev

如何在 Where 子句条件中编写动态删除条件

来自分类Dev

如何在Firebase中基于多个条件进行查询?

来自分类Dev

如何在选择字段中添加基于条件的选择状态

来自分类Dev

如何在QtCreator中基于SqlQuery结果执行条件语句?

来自分类Dev

如何在Excel中基于多个特定文本的条件格式

来自分类Dev

如何在knitr中基于条件包括标头

来自分类Dev

如何在mysql查询的列中打印基于条件的值

来自分类Dev

如何在基于数组的条件中查找值

来自分类Dev

如何在SQL中基于日期条件求和?

来自分类Dev

如何在CakePHP中基于2列条件获取数据

Related 相关文章

热门标签

归档