我可以在Check约束中创建SQL子查询吗?
我有一个post表中的列id, owner
我有另一个表action的列user_id, post_id
表user的列id
post_id -> post.id并且user_id -> user.id还post.owner -> user.id
现在我想约束post(post_id).id != user_id桌子action
怎么可能?
postgresql plpgsql foreign-key-relationship check-constraints
哪些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)
)
Run Code Online (Sandbox Code Playgroud)
UPDATE
MS Access和Firebird都支持此功能.
SQL Server 2008 是否支持CREATE ASSERTION语法?
我一直无法找到一个直接的答案。