我有一个查询,可以列出当前数据库中的表:
SELECT c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind
IN ('r','') AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND
pg_catalog.pg_table_is_visible(c.oid)
我正在尝试使用类似子查询的大写SELECT来删除所有这些表:
DROP TABLE IF EXISTS (SELECT c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind
IN ('r','') AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND
pg_catalog.pg_table_is_visible(c.oid)) as tname
但那不起作用。
如何正确编写查询,以删除由显示的SELECT查询列出的所有表格?
目前我使用DataReader循环遍历查询结果,并逐个删除表格。
但我认为可以一次性完成。