【发布时间】:2026-01-27 05:20:03
【问题描述】:
我需要将默认约束值从 0 更改为 1。这很容易做到:
ALTER TABLE table DROP CONSTRAINT X
ALTER TABLE table ADD CONSTRAINT X default (1) for table.column
问题是我不想每次在我的数据库上运行 modelupdate 时都删除并创建一个新的约束。这就是为什么我要运行这段代码 IF 约束的值为 0。
是否可以在 SQL 中检查默认约束的值,如果可以,如何?
【问题讨论】:
-
这适用于哪个 RDBMS?请添加标签以指定您使用的是
mysql、postgresql、sql-server、oracle还是db2- 或者完全是其他东西。 -
对不起!现在它在那里。
-
"我不想每次重新创建数据库时都删除并创建一个新的约束" -- 当你重新创建数据库时,你不必先删除约束,因为它还不存在。当你重新创建你的数据库时,你总是需要创建你的约束。
-
SELECT * FROM sys.default_constraints \\\ 定义
-
是的,我问的问题有点错误。每次我们对数据库进行更新时,我们都会将其提交到一个大型 SQL 文件中,以检查表是否存在或列是否存在。如果没有,则创建。我希望约束也能发生同样的情况。
标签: sql sql-server constraints default-constraint