Dip*_*Sen 42 postgresql plpgsql foreign-key-relationship check-constraints
我可以在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
怎么可能?
kgr*_*ttn 66
不支持超出CHECK约束中的当前行.
http://www.postgresql.org/docs/9.1/interactive/sql-createtable.html说:
指定为列约束的检查约束应仅引用该列的值,而出现在表约束中的表达式可引用多个列.
目前,CHECK表达式不能包含子查询,也不能引用当前行的列以外的变量.
这种限制是有充分理由的,但是如果你喜欢在交通繁忙的情况下骑单轮脚踏车时使用燃烧的火炬,你可以使用功能来破坏限制.在这种情况下,这种情况不会让你感到难过; 你可以更安全地在触发代码中强制执行不变量.
http://www.postgresql.org/docs/9.1/interactive/triggers.html