我想确保只有价值观专家'平均'或者'充足'被输入到此表的levelOfExpertise
列中,但每当我尝试输入其中一个值时,它会返回一个错误,表示输入的值太短。以下是此特定表的create table查询。我所指的专栏是levelOfExpertise
:
CREATE TABLE MusicianInstrument
(
musicianNo varchar(5) not null
CONSTRAINT MI_PK1 REFERENCES Musician(musicianNo),
instrumentName varchar(50) not null
CONSTRAINT MI_PK2 REFERENCES Instrument(instrumentName),
levelOfExpertise varchar(50),
CONSTRAINT levelOfExpertise CHECK (levelOfExpertise = 'Expert', 'Adequate', 'Avergage'),
PRIMARY KEY(musicianNo,instrumentName)
);
如何才能确保我只能确保这三个值(Expert
,Adequate
或Average
)?
由于
答案 0 :(得分:0)
使用IN运算符
CHECK (levelOfExpertise IN ('Expert','Adequate','Avergage'))
答案 1 :(得分:0)
尝试按以下方式更改CHECK约束:
CONSTRAINT levelOfExpertise CHECK (levelOfExpertise IN ('Expert','Adequate','Avergage'))
我想您使用sql server作为RDBMS。