ral*_*oss 11 sql ms-access nullable
我在数据库表中有两列(以及其他列):ExitDate和ExitReason.我们的业务逻辑要求在指定ExitDate时指定ExitReason.ExitDate列需要允许空值,因为在插入时并不总是知道该值.有没有办法让ExitReason列仅在ExitDate值为null时才允许空值?我可以通过将这两列分成单独的"退出日期"表并使它们都不可为空来完成效果,但如果我不必这样做会很好.
想法?谢谢!
Nic*_*mas 13
假设您使用的是SQL Server或类似的东西,可以在表上使用CHECK约束来执行此操作.(不幸的是,MySQL 解析但忽略了 CHECK约束,所以你必须使用该平台的触发器.)
如果表已存在:
ALTER TABLE ADD CONSTRAINT CK_ExitDateReason
CHECK (
(ExitDate IS NULL AND ExitReason IS NULL)
OR (ExitDate IS NOT NULL AND ExitReason IS NOT NULL)
);
Run Code Online (Sandbox Code Playgroud)
如果您自己创建表:
CREATE TABLE dbo.Exit (
...
, CONSTRAINT CK_ExitDateReason CHECK ...
);
Run Code Online (Sandbox Code Playgroud)
使用检查约束比使用触发器更可取,因为:
| 归档时间: |
|
| 查看次数: |
861 次 |
| 最近记录: |