是否可以在postgres中使用单个命令从所有表中删除所有行(而不破坏数据库),或者在postgres中级联删除?
如果没有,那么我该如何重置测试数据库?
最佳答案
您说得对,答案是否定的
您可以定义级联外键,如果删除了“父级”,这些外键将删除所有引用行。但这是外键的属性,您无法使用DELETE语句指定任何内容
那是什么意思?
再次想一想:您要达到什么目标?
我怀疑您正在尝试“重置”例如测试数据库。在那种情况下,PostgreSQL方法将是:
DROP DATABASE testdb
,然后使用CREATE DATABASE testdb TEMPLATE my_template
重新创建测试数据库新创建的testdb将在my_template中定义所有表。这可能比删除所有行快很多。
关于postgresql - Postgres : delete all tables or cascade a delete?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3524368/