Re: Foreign key check only if not null?

Поиск
Список
Период
Сортировка
От Richard Broersma
Тема Re: Foreign key check only if not null?
Дата
Msg-id CABvLTWFUZHasf9MsJob2e6RmK4iTc-Edtt3z7_UkGgdyt4sqJg@mail.gmail.com
обсуждение исходный текст
Ответ на Foreign key check only if not null?  (Phoenix Kiula <phoenix.kiula@gmail.com>)
Список pgsql-general
On Mon, Sep 12, 2011 at 6:48 PM, Phoenix Kiula <phoenix.kiula@gmail.com> wrote:

> I have a column in my table:
>    user_id  varchar(100) ;
>
> This can be NULL, or it can have a value. If it has a value during
> INSERT or UPDATE, I want to check that the user exists against my
> "Users" table. Otherwise, NULL is ok. (Because the functionality in
> question is open to both unregistered and registered users).
>
> Any idea on how I can implement a FOREIGN KEY constraint?

This sounds like an ordinary foreign key constraint.  Just be sure
that you drop the null constraint on the table's user_id column.

So:

ALTER TABLE "my table"
 ADD CONSTRAINT "my table_Users_user_id_fkey"
 FOREIGN KEY (user_id)
 REFERENCES "Users" (user_id) ON UPDATE CASCADE ON DELETE SET NULL,
 ALTER COLUMN user_id DROP NOT NULL;



--
Regards,
Richard Broersma Jr.

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

Предыдущее
От: Eduardo Piombino
Дата:
Сообщение: Re: Foreign key check only if not null?
Следующее
От: Reid Thompson
Дата:
Сообщение: Re: Need help with what I think is likely a simple query - for each distinct val, return only one record with the most recent date.