Re: How to use a cross column exclude constraint

Поиск
Список
Период
Сортировка
От chidamparam muthusamy
Тема Re: How to use a cross column exclude constraint
Дата
Msg-id CABUk_4iSF9MagtgSX9ox5ZOqX0hMLo+FVN=xcJHksSW=aUriHQ@mail.gmail.com
обсуждение исходный текст
Ответ на How to use a cross column exclude constraint  (awolchute@tutanota.com)
Ответы Re: How to use a cross column exclude constraint  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-novice

CREATE TABLE products (    product_no integer,    name text,    price numeric CHECK (price > 0),    discounted_price numeric CHECK (discounted_price > 0),    CHECK (price > discounted_price)
);
In the above example, column 'discounted_price'  value is checked that it should be less than the column value, 'price'.
Is it possible to add similar check condition for the columns, 'record_a_id' and 'record_b_id' that is
CHECK(record_a_id != record_b_id)
Regards,
Chidamparam


On Mon, Aug 22, 2022 at 1:15 AM <awolchute@tutanota.com> wrote:

Hi All,

Schema:
CREATE TABLE record (        id uuid primary key default ...,    ...
);

CREATE TABLE record_pointer (    id uuid primary key default ...,    record_a_id uuid not null references record (id),    record_b_id uuid not null references record (id),    ...
);

I am trying to create an exclude constraint to make both record_a_id and record_b_id unique table wide, so that each row from "record" can ever be referenced once in "record_pointers". 

Eg. if I add a record_pointer row that has "this-is-random-uuid" as record_a_id, the value "this-is-random-uuid" can never be in record_a_id or record_b_id in any other row.


Thank you in advance!


В списке pgsql-novice по дате отправления:

Предыдущее
От: awolchute@tutanota.com
Дата:
Сообщение: How to use a cross column exclude constraint
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: How to use a cross column exclude constraint