"Andrew Dunstan" <[EMAIL PROTECTED]> writes: > Louis-David Mitterrand wrote: >> Hi, >> >> I changed the data type on a column (to an enum) but the previous foreign key >> to the old table (replaced by the enum) is still accepted event though the >> data types are now different. Is that the expected behavior? >> >> CREATE TABLE person_to_event ( >> id_person integer NOT NULL, >> id_event integer NOT NULL, >> person_type person_type_new NOT NULL, -- new ENUM type >> "character" text >> ) >> >> ALTER TABLE ONLY person_to_event >> ADD CONSTRAINT person_to_event_person_type_fkey FOREIGN KEY >> (person_type) REFERENCES person_type(person_type); -- old person_type table, >> text column > > Please send us a more complete example. Also, using the same name for a table, > a field and a type makes reading it very confusing. Please make sure your > example uses names for just one purpose.
(Well you can't use the same name for a table and a type since a table defines a type of that name implicitly.) I think what's missing here is the definition of the person_type table. Your comment says "text column" but I get this with a text column target: postgres-# ERROR: foreign key constraint "person_to_event_person_type_fkey" cannot be implemented DETAIL: Key columns "person_type" and "person_type" are of incompatible types: person_type_new and text. I get the same thing if it's an integer field. -- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's Slony Replication support! ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings