我需要动态创建、管理和删除模式(schema)。如果我要创建的模式已经存在,我希望能够(通过外部手段)有条件地将其删除并按照指定重新创建。如何检查PostgreSQL 9服务器上是否存在该模式?
目前,我的做法是:
select exists (select * from pg_catalog.pg_namespace where nspname = 'schemaname');
但我感觉可能还有其他方法...这是查询Postgres特定schema存在的“正确”方式吗?
我需要动态创建、管理和删除模式(schema)。如果我要创建的模式已经存在,我希望能够(通过外部手段)有条件地将其删除并按照指定重新创建。如何检查PostgreSQL 9服务器上是否存在该模式?
目前,我的做法是:
select exists (select * from pg_catalog.pg_namespace where nspname = 'schemaname');
但我感觉可能还有其他方法...这是查询Postgres特定schema存在的“正确”方式吗?
如果您在特定模式中有对象(表、存储过程、视图),那么这些都不起作用-在删除时会失败...
创建和管理是容易的部分... 删除才是让你头疼的部分。无论如何,我找不到合适的答案,所以我在这里发布给其他人参考。
DROP SCHEMA myschema CASCADE;
- neno