Re: REFERENCE problem with parent_table
От | gustavo halperin |
---|---|
Тема | Re: REFERENCE problem with parent_table |
Дата | |
Msg-id | 44E21CBF.4010805@gmail.com обсуждение исходный текст |
Ответ на | Re: REFERENCE problem with parent_table (Richard Broersma Jr <rabroersma@yahoo.com>) |
Ответы |
Re: REFERENCE problem with parent_table
|
Список | pgsql-general |
Richard Broersma Jr wrote: >> I need many tables of type "id" and "name", see below: >> / CREATE TABLE id_names ( >> id smallint CONSTRAINT the_id PRIMARY KEY NOT NULL, >> name text CONSTRAINT the_name UNIQUE >> ) WITH OIDS;/ >> therefore I created these tables with the "LIKE" operator, see below: >> / CREATE TABLE like_id_1( LIKE id_names INCLUDING DEFAULTS ) WITH OIDS; >> CREATE TABLE like_id_2 ( LIKE id_names INCLUDING DEFAULTS ) WITH OIDS; >> > > it looks like the syntax here is a little off from what is defined by: > http://www.postgresql.org/docs/8.1/interactive/sql-createtable.html > > CREATE TABLE like_id_1 ( id smallint like id_names, > name text like id_name ) with oids ; > Are you sure, I think that you are wrong. Operator "LIKE" is like a operator for a "table_constraint", I mean, is wrote in a new line, like a new column, and isn't property or part of any column. More over, in the documentation is wrote: "/The LIKE clause specifies a table from which the new table automatically copies all column names, their data types, and their not-null constraints./", but is like the operator "REFERENCE" see the tables "like_id_1" empty (see below) or maybe is a bug in posgresql. / database=# insert into like_id_1 values (1,'hello'); INSERT 157581 1 database=# select * from like_id_1; id | name ----+-------- 1 | hello (1 row) database=# CREATE TABLE ref_1 ( id smallint CONSTRAINT the_id REFERENCES like_id_1 (id) ); ERROR: there is no unique constraint matching given keys for referenced table "like_id_1"/ Thank you any way, Gustavo
В списке pgsql-general по дате отправления: