首页 > 解决方案 > Postgres如何从名称中带有“组”的模式中删除所有表?

问题描述

我有一个 postgres 数据库模式,其中包含我需要删除的几十个表。我基本上需要删除我的模式(abcd)中名称中带有“组”一词的所有表。如果不手动进入并为每个脚本编写放置脚本,我该如何做到这一点?想知道在 postgres sql 中是否有一些简单的方法可以做到这一点?或者也许使用python?

drop table abcd.group%;

标签: sqlpostgresql

解决方案


好吧,这可能不是最酷的方法,但是您可以运行下面的查询,复制并粘贴输出并运行它。

SELECT 'DROP TABLE ' || schemaname || '.' || relname || ';' "statement"
FROM pg_catalog.pg_statio_user_tables
WHERE schemaname = 'abcd' AND relname ILIKE 'group%';

推荐阅读