我有一个包含许多表的数据库。其中12个表以相同的前缀开头:
mystuff_table_1
mystuff_table_2
mystuff_table_3
mystuff_table_4
etc...
我不想一遍又一遍地输入DROP TABLE mystuff_table_n CASCADE;
,特别是因为我必须反复删除表格。我怎样才能让生活更轻松?
答案 0 :(得分:1)
您可以创建一个自动执行此操作的过程:
尝试:
CREATE OR REPLACE FUNCTION public.p_drop_tables (
p_start integer,
p_end integer,
p_table varchar
)
RETURNS void AS
$body$
DECLARE SQL VARCHAR := '';
BEGIN
FOR i IN p_start..p_end LOOP
SQL := 'DROP TABLE public.' || p_table || i || ';';
--RAISE NOTICE '%',SQL;
EXECUTE (SQL);
END LOOP;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
ATT