仅当另一列具有特定值时才允许Null

问题描述 投票:1回答:1

我仅在某些特定列具有特定值的情况下才尝试对某些列使用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,
);
sql
1个回答
0
投票

只需摆脱NOT NULL

ex:

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),
R_Max decimal(19,6),
R2_Min decimal(19,6)NOT NULL,
R2_Max decimal(19,6)NOT NULL,
Boundary decimal(19,6)NOT NULL,
);

0
投票
create table Range(
...
Type varchar(255)NOT NULL,
...
R_Min decimal(19,6),
...
check (type = 'certainvalue' or R_Min is not null)
);
© www.soinside.com 2019 - 2024. All rights reserved.