Vzz*_*arr 1 sql amazon-web-services amazon-redshift
我有兴趣删除 Redshift 模式中的所有表。即使此解决方案有效
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
Run Code Online (Sandbox Code Playgroud)
是不是为我好,因为它降低架构权限为好。
一个解决方案,如
DO $$ DECLARE
r RECORD;
BEGIN
-- if the schema you operate on is not "current", you will want to
-- replace current_schema() in query with 'schematodeletetablesfrom'
-- *and* update the generate 'DROP...' accordingly.
FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP
EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
END LOOP;
END $$;
Run Code Online (Sandbox Code Playgroud)
正如该线程中所报告的,如何删除 PostgreSQL 数据库中的所有表?
将是理想的。不幸的是,它不适用于 Redshift(显然不支持for loops)。
有没有其他解决方案来实现它?
dem*_*glu 10
运行此 SQL 并将结果复制并粘贴到您的 SQL 客户端上。如果您想以编程方式执行此操作,则需要围绕它构建一些代码。
SELECT 'DROP TABLE IF EXISTS ' || tablename || ' CASCADE;'
FROM pg_tables
WHERE schemaname = '<your_schema>'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5544 次 |
| 最近记录: |