Можно ли создать ограничение кросс-отношений в postgresql? - PullRequest
0 голосов
/ 10 января 2019

Могу ли я создать ограничение для базы данных, обеспечивающее некоторые отношения между столбцами в разных таблицах, связанных внешним ключом? Так, например, могу ли я убедиться, что строка в таблице имеет значение для определенного столбца, которое больше, чем значение в столбце строки в другой таблице, на которую она ссылается.

Так наивно вы могли бы подумать, что это будет выглядеть так:

CREATE table1 (
    id integer PRIMARY KEY,
    col1 integer
);
CREATE table2 (
    id integer PRIMARY KEY,
    link_to_1 integer REFERENCES table1,
    col2 integer,
    -- Is there some way of specifying the following constraint?
    CHECK (col2 > link_to_1.col1)  
);

Таким образом, строка в table1 никогда не может иметь запись со значением col1, большим, чем col2 в строке link_to_1.

Очевидно, что это ограничение не позволит вам впоследствии изменить значение table1.col1, чтобы оно было более высоким, чем значение table2.col2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...