可以创建表,例如:
CREATE TABLE IF NOT EXISTS router (
id BIGSERIAL PRIMARY KEY
, name_1 BOOLEAN NOT NULL DEFAULT FALSE
, name_2 BOOLEAN NOT NULL DEFAULT FALSE
, name_3 BOOLEAN NOT NULL DEFAULT FALSE
, name_4 BOOLEAN NOT NULL DEFAULT FALSE
, name_5 BOOLEAN NOT NULL DEFAULT FALSE
);
对于这个表,我会使用类似lock的方法来防止在bettwen name 1-name 5中放入超过1个真值。例如,如果真值存在,那么就不可能把某些东西放进去。如果在NAME3中存在,则必须放置NAMEY1,2,4和5。
最佳答案
可以添加检查约束:
check (name_1 and not name_2 and not ...
or name_2 and not name_1 and not ...
or ...)
(表达布尔表达式的方法可能更短,但这就是它的要点。)
关于postgresql - postgresql表将锁定设置为某些值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20530862/