Re: Composite type

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: Composite type
Дата
Msg-id CAB7nPqQJzx7R2FJKJ8bMjVdzzDhOC55Wnm2EDfeAHfDBYXkHsg@mail.gmail.com
обсуждение исходный текст
Ответ на Composite type  (antono124 <g.antonopoulos000@gmail.com>)
Список pgsql-general
On Mon, Jan 27, 2014 at 2:02 AM, antono124 <g.antonopoulos000@gmail.com> wrote:
> Lets say that we have 2 tables.
> Create Table "table1" Of "type1"
> Create Table "table2" Of "type2"
>
> I want to refer the first table in the second. I want to reference the whole
> table not only one field, so something like that:
>
> CREATE TYPE type2 AS OBJECT (
>   var1   NUMBER,
>   var2    REF type1
>   )
>
> CREATE TABLE table2 OF type2 (
>    PRIMARY KEY (Pk),
>    FOREIGN KEY (fk) REFERENCES table1)
>
> Can i do something like this in Postgre?
It is possible to use multiple column names with defining a foreign key:
=# create table t1 (a int, b text, primary key (a, b));
CREATE TABLE
=# create table t2 (a int, b text, c text, foreign key (a, b)
references t1 (a, b));
CREATE TABLE
=# \d t2
      Table "public.t2"
 Column |  Type   | Modifiers
--------+---------+-----------
 a      | integer |
 b      | text    |
 c      | text    |
Foreign-key constraints:
    "t2_a_fkey" FOREIGN KEY (a, b) REFERENCES t1(a, b)

You could as well use some custom types if you do not want to
reference all the columns...
=# create type ty1 as (a int, b int);
CREATE TYPE
=# create table t1 (c ty1 primary key);
CREATE TABLE
=# create table t2 (d int primary key, e ty1 references t1 (c));
CREATE TABLE
=# \d t2
      Table "public.t2"
 Column |  Type   | Modifiers
--------+---------+-----------
 d      | integer | not null
 e      | ty1     |
Indexes:
    "t2_pkey" PRIMARY KEY, btree (d)
Foreign-key constraints:
    "t2_e_fkey" FOREIGN KEY (e) REFERENCES t1(c)

Regards,
--
Michael


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

Предыдущее
От: ZHIBIN NIU
Дата:
Сообщение: Can not add thirty-party libraries into PostgreSQl source code under eclipse.
Следующее
От: ning chan
Дата:
Сообщение: plsql / plpgsql code coverage tool, static analysis tool