DDL: ограничение проверки вопроса SQL для нескольких столбцов

#sql #postgresql #ddl #check-constraints

#sql #postgresql #ddl #проверка-ограничения

Вопрос:

 create table Game(

isOn boolean,

playHour int,

isOff boolean,

constraint ck_isOn_hour check ( ? )

);
 

Ограничение: время воспроизведения равно НУЛЮ, когда isOn = FALSE

Замените символ ‘?’ допустимой проверкой для данного ограничения.

Любая помощь очень ценится.

Ответ №1:

Это должно сделать это:

 constraint ck_isOn_hour check (isOn or (playHour is null and not isOn))
 

Это можно упростить:

 constraint ck_isOn_hour check (isOn or playHour is NULL)