Select sobre tipos compuestos

Lists: pgsql-es-ayuda
From: Felipe González Z(dot) <felipegonza(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Select sobre tipos compuestos
Date: 2007-06-03 11:00:28
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola,

tengo los siguiente tipos compuestos (no se asusten por los tipos de datos,
que tan sólo estoy probando y aprendiendo...)

CREATE TYPE clases AS (
sala VARCHAR,
hora_inicio VARCHAR,
hora_fin VARCHAR,
año integer
);

CREATE TABLE clase (
oid_clase dom_oid,
clase clases,
PRIMARY KEY (oid_clase)
);

pues bien, como puedo hacer un SELECT sobre la tabla "clase", de algún
atributo en particular del tipo "clases"???
Un saludo, y gracias por la ayuda!!

Felipe


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Felipe González Z(dot) <felipegonza(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Select sobre tipos compuestos
Date: 2007-06-03 23:17:47
Message-ID: [email protected]
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-es-ayuda

Felipe González Z. escribió:
> Hola,
>
> tengo los siguiente tipos compuestos (no se asusten por los tipos de datos,
> que tan sólo estoy probando y aprendiendo...)
>
> CREATE TYPE clases AS (
> sala VARCHAR,
> hora_inicio VARCHAR,
> hora_fin VARCHAR,
> año integer
> );
>
>
> CREATE TABLE clase (
> oid_clase dom_oid,
> clase clases,
> PRIMARY KEY (oid_clase)
> );
>
> pues bien, como puedo hacer un SELECT sobre la tabla "clase", de algún
> atributo en particular del tipo "clases"???

alvherre=# CREATE TABLE clase (
alvherre(# oid_clase dom_oid,
alvherre(# clase clases,
alvherre(# PRIMARY KEY (oid_clase)
alvherre(# );
NOTICE: CREATE TABLE / PRIMARY KEY creará el índice implícito «clase_pkey» para
la tabla «clase»
CREATE TABLE
alvherre=# select * from clase;
oid_clase | clase
-----------+-------
(0 filas)

alvherre=# insert into clase values (1, row('una', '10:00', '12:00', 1999));
INSERT 0 1
alvherre=# select * from clase;
oid_clase | clase
-----------+------------------------
1 | (una,10:00,12:00,1999)
(1 fila)

alvherre=# select clase.sala from clase;
ERROR: no existe la columna clase.sala
LINEA 1: select clase.sala from clase;
^
alvherre=# select (clase).sala from clase;
sala
------
una
(1 fila)

alvherre=#

--
Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J
"When the proper man does nothing (wu-wei),
his thought is felt ten thousand miles." (Lao Tse)