如果PostgreSQL中存在另一个表,如何使用if语句删除1个表
如果存在另一个表,我尝试编写一个删除/删除表的查询:如果PostgreSQL中存在另一个表,如何使用if语句删除1个表,postgresql,drop,Postgresql,Drop,如果存在另一个表,我尝试编写一个删除/删除表的查询: DO $do$ BEGIN IF EXISTS (SELECT FROM table1) THEN DELETE FROM table2; END IF; END $do$; 但它所做的只是在表2存在的情况下从表1中删除行,而不是从表本身中删除行 您可以使用类似于上面的函数吗?如果存在,我应该使用drop table吗 如果存在另一个表,则删除/删除该表 这将是: do $$ begin if exis
DO
$do$
BEGIN
IF EXISTS (SELECT FROM table1) THEN
DELETE FROM table2;
END IF;
END
$do$;
但它所做的只是在表2存在的情况下从表1中删除行,而不是从表本身中删除行
您可以使用类似于上面的函数吗?如果存在,我应该使用drop table吗
如果存在另一个表,则删除/删除该表
这将是:
do $$
begin
if exists(select 1 from information_schema.tables where table_schema = current_schema() and table_name = 'table1') then
drop table table2;
end if;
end; $$ language plpgsql;
理由:
ing from a table不是检查表是否存在的正确方法-如果不存在,则会引发错误。相反,您可以查询信息模式select
- 要删除表格,您需要
<代码>删除,另一方面,删除表的内容,而不是表本身删除表格