sql - 仅当另一列具有特定值时才允许 Null
问题描述
我试图仅在某些特定列具有特定值时才允许某些列使用 Null。我怎么做?因此,假设我创建了一个表,最初我希望所有列都不是 NULL,但是如果列中有某个值type
,我希望允许R_Min
列为 NULL,R_max
列为空。
create table Range(
OptionID int,
IndexID int,
PRIMARY KEY(OptionID, IndexID),
Type varchar(255)NOT NULL,
Name varchar(255)NOT NULL,
RType varchar(255)NOT NULL,
R_Min decimal(19,6)NOT NULL,
R_Max decimal(19,6)NOT NULL,
R2_Min decimal(19,6)NOT NULL,
R2_Max decimal(19,6)NOT NULL,
Boundary decimal(19,6)NOT NULL,
);
解决方案
将列声明为可为空。添加检查约束以仅允许某些 Type 值使用 NULL。
create table Range(
...
Type varchar(255)NOT NULL,
...
R_Min decimal(19,6),
...
check (type = 'certainvalue' or R_Min is not null)
);
推荐阅读
- javascript - 挑战循环遍历数组以删除 Google Apps 脚本中的行
- multilingual - 在 Linux 20.04 上添加 APL 键盘布局
- python - 在 Python PyQt5 中获取标准错误消息
- .net - ClickOnce 应用程序在下载 dll (Interop.Microsoft.Office.Interop.Word.dll) 时突然失败
- c++ - 来自 QGridLayout 的 QWidgets 不会占用所有空间
- apache-spark - Spark Kafka 数据消费包
- python - Jupyter 笔记本小部件
- discord - Discord.js 计时器,定期更新倒计时
- javascript - 如何通过提示乘以输入的数字?
- java - Doxygen 在尝试修补“修补输出文件”时崩溃,出现“错误:写入图 1 时出现问题!”