Какие базы данных SQL, если есть, поддерживать подзапросы в ограничениях CHECK?
В настоящее время, насколько мне известно, Oracle, MySQL и PostgreSQL не поддерживают.
РЕДАКТИРОВАТЬ
(Уточнение на основе начальных ответов.) Я ищу что-то вроде этого. :
CREATE TABLE personnel (
...,
department VARCHAR(64) NOT NULL,
salary NUMERIC NOT NULL,
CHECK (salary >= (SELECT MIN(p.salary) FROM payranges p WHERE p.dept = department)
AND
salary <= (SELECT MAX(p.salary) FROM payranges p WHERE p.dept = department)
)
ОБНОВЛЕНИЕ
MS Access и Firebird поддерживают эту функцию.