我需要删除 PostgreSQL 数据库中具有外键约束并且需要的表DROP TABLE ... CASCADE
.
我可以执行原始 SQL:engine.execute("DROP TABLE %s CASCADE;" % table.name)
。
但是,我想实现这种行为,以便我可以做到table.drop(engine)
为了postgresql
方言。
人们将如何处理这一问题?
You can 自定义构造的编译 http://docs.sqlalchemy.org/en/latest/core/compiler.html#changing-compilation-of-types像这样:
from sqlalchemy.schema import DropTable
from sqlalchemy.ext.compiler import compiles
@compiles(DropTable, "postgresql")
def _compile_drop_table(element, compiler, **kwargs):
return compiler.visit_drop_table(element) + " CASCADE"
这附加CASCADE
to the DROP TABLE
针对 postgresql 方言发布的声明,同时保持所有其他方言相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)