Обсуждение: foreign key to "some rows" of a second table

Поиск
Список
Период
Сортировка

foreign key to "some rows" of a second table

От
Chris Withers
Дата:
Hi All,

    So, I have a table that looks like this:


    CREATE TABLE config (
        region    varchar(10),
        name    varchar(10),
        value    varchar(40)
    );

    Another looks like this:

    CREATE TABLE tag (
        host    varchar(10),
        type    varchar(10),
        value    varchar(10)
    );

    What's the best way to set up a constraint on the 'config' table
    such that the 'region' column can only contain values that exist in
    the 'tag' table's value column where the 'type' is 'region'?

    cheers,

    Chris

Re: foreign key to "some rows" of a second table

От
Achilleas Mantzios
Дата:
On 22/02/2016 13:03, Chris Withers wrote:
Hi All,

So, I have a table that looks like this:

CREATE TABLE config (
    region    varchar(10),
    name    varchar(10),
    value    varchar(40)
);

Another looks like this:

CREATE TABLE tag (
    host    varchar(10),
    type    varchar(10),
    value    varchar(10)
);

What's the best way to set up a constraint on the 'config' table such that the 'region' column can only contain values that exist in the 'tag' table's value column where the 'type' is 'region'?

Hi,
that's the reason CONSTRAINT TRIGGERS were introduced in PostgreSQL, I guess.
Just write an AFTER INSERT OR UPDATE TRIGGER ON config,
which checks for integrity.


cheers,

Chris


-- 
Achilleas Mantzios
IT DEV Lead
IT DEPT
Dynacom Tankers Mgmt