Thread: Having elements of an int[]-array reference other tables

Having elements of an int[]-array reference other tables

From
Andreas Joseph Krogh
Date:
Hi.
Is it possible in PG to have elements in an int[]-array reference another
int-column in another table? What I want is it to behave as a foreign key.

create table master(
my_id integer primary key
);

create table test(
id serial primary key,
id_array integer[] references master(my_id)
);

It would be nice if one could have elements in test.id_array to reference
elements in master.my_id, with all the benefits of ON DELETE | UPDATE etc.

I know I can accomplish this with triggers, but if there exists something
built-in I'd like to know.

--
Andreas Joseph Krogh <andreak@officenet.no>
Senior Software Developer / Manager
------------------------+---------------------------------------------+
OfficeNet AS            | The most difficult thing in the world is to |
Karenslyst Allé 11      | know how to do a thing and to watch         |
PO. Box 529 Skøyen      | somebody else doing it wrong, without       |
0214 Oslo               | comment.                                    |
NORWAY                  |                                             |
Tlf:    +47 24 15 38 90 |                                             |
Fax:    +47 24 15 38 91 |                                             |
Mobile: +47 909  56 963 |                                             |
------------------------+---------------------------------------------+


Re: Having elements of an int[]-array reference other tables

From
"Pavel Stehule"
Date:
Hello,

it isn't possible without custom triggers.

regards
Pavel Stehule



On 21/01/2008, Andreas Joseph Krogh <andreak@officenet.no> wrote:
> Hi.
> Is it possible in PG to have elements in an int[]-array reference another
> int-column in another table? What I want is it to behave as a foreign key.
>
> create table master(
> my_id integer primary key
> );
>
> create table test(
> id serial primary key,
> id_array integer[] references master(my_id)
> );
>
> It would be nice if one could have elements in test.id_array to reference
> elements in master.my_id, with all the benefits of ON DELETE | UPDATE etc.
>
> I know I can accomplish this with triggers, but if there exists something
> built-in I'd like to know.
>
> --
> Andreas Joseph Krogh <andreak@officenet.no>
> Senior Software Developer / Manager
> ------------------------+---------------------------------------------+
> OfficeNet AS            | The most difficult thing in the world is to |
> Karenslyst Allé 11      | know how to do a thing and to watch         |
> PO. Box 529 Skøyen      | somebody else doing it wrong, without       |
> 0214 Oslo               | comment.                                    |
> NORWAY                  |                                             |
> Tlf:    +47 24 15 38 90 |                                             |
> Fax:    +47 24 15 38 91 |                                             |
> Mobile: +47 909  56 963 |                                             |
> ------------------------+---------------------------------------------+
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>