【发布时间】:2010-10-18 17:41:34
【问题描述】:
我正在寻找一种方法来暂时关闭所有 DB 的约束(例如表关系)。
我需要将一个数据库的表复制(使用插入)到另一个数据库。 我知道我可以通过以正确的顺序执行命令来实现这一点(不破坏关系)。
但如果我可以暂时关闭检查约束并在操作完成后重新打开它会更容易。
这可能吗?
【问题讨论】:
-
这不是完整的副本我只是想复制选定的表之间
-
我担心这样做会关闭所有人的约束,而不仅仅是你。如果必须这样做,请先将数据库置于单用户模式。否则,您最终可能会出现数据完整性问题。
-
来自未来的亲爱的人们:您可以一次禁用和重新启用数据库中的所有约束;见stackoverflow.com/a/161410
-
完成后不要忘记启用约束!
-
@NicolasBarbulesco 很公平;我要关闭
sql-server和sql-server-2005标签。我提供的链接适用于 SQL Server,但您可以在 Oracle 中执行相同的操作 - 请参阅 here 和 here。你也可以在PostgreSQL.
标签: sql sql-server sql-server-2005 constraints entity-relationship