我仅在某些特定列具有特定值的情况下才尝试对某些列使用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,
);
只需摆脱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,
);
create table Range(
...
Type varchar(255)NOT NULL,
...
R_Min decimal(19,6),
...
check (type = 'certainvalue' or R_Min is not null)
);