Re: Noob question about types and lists
От | Richard Huxton |
---|---|
Тема | Re: Noob question about types and lists |
Дата | |
Msg-id | 4345088E.4090001@archonet.com обсуждение исходный текст |
Ответ на | Noob question about types and lists (xchris <lyralyra@fastmail.fm>) |
Ответы |
Re: Noob question about types and lists
|
Список | pgsql-sql |
xchris wrote: > CREATE TYPE address AS > ( > street VARCHAR(160), > city INTEGER, > cap INTEGER, > country INTEGER (those are referring to other table) > ); > > and then composing table client > > CREATE TABLE client > ( > id SERIAL PRIMARY KEY, > name VARCHAR(80), > surname VARCHAR(80), > address address[3] > .... > UNIQUE (name,surname) > ); > > > This doesn't work. > I cannot create a list of types. > > I'm using a wrong syntax? or simply i cannot do this? From the manuals... 8.10. Arrays PostgreSQL allows columns of a table to be defined as variable-length multidimensional arrays. Arrays of any built-in or user-defined base type can be created. (Arrays of composite types or domains are not yet supported, however.) So - you can't do this at the moment. However - I don't think you want to anyway. If you're going to use a relational database, try a relational approach! Typically, you would do something like: CREATE TABLE client (id ..., name ...) CREATE TABLE address (id ..., street ...) CREATE TABLE client_address (client_id ..., address_id ...) Then, you can add some foreign-key constraints so PG makes sure that the ID numbers in client_address are all valid. This makes it simple to get client names, client addresses or both together. HTH -- Richard Huxton Archonet Ltd
В списке pgsql-sql по дате отправления: