Re: Can arrays reference primary keys in CREATE TABLE? - Mailing list pgsql-sql

From Richard Huxton
Subject Re: Can arrays reference primary keys in CREATE TABLE?
Date
Msg-id 200305141631.48642.dev@archonet.com
Whole thread Raw
In response to Can arrays reference primary keys in CREATE TABLE?  ("Filipe Bonjour" <fbonjour@urbanet.ch>)
Responses Re: Can arrays reference primary keys in CREATE TABLE?  (Luis Sousa <llsousa@ualg.pt>)
List pgsql-sql
On Friday 09 May 2003 10:21 pm, Filipe Bonjour wrote:
> Hi,
>
> I'm a rather new SQL user, and I found interesting that you can
> use "references" to make sure that a value inserted in a table is a
> primary key from another table. Something like:

Yep - referential integrity is vital.

> However, I'd like to define a table containing an array, and that
> all elements of the array be a primary key from another table, so I
> tried:
>
> create table tb (
>   a_ref     integer[] references ta(a_id)
>   );
>
> But that doesn't work, I think because an array of integers can't
> be directly compared to an integer.

Don't use arrays, use another table, e.g.

CREATE TABLE tb_items ( tb_ref  integer REFERENCE tb, ta_ref integer REFERENCES ta, PRIMARY KEY (tb_ref,ta_ref)
);

--  Richard Huxton


pgsql-sql by date:

Previous
From: Richard Huxton
Date:
Subject: Re: Type coercion on column in a query
Next
From: Richard Huxton
Date:
Subject: Re: Questions for experts