OID and PL/pgSQL trigger :-(
От | Alke |
---|---|
Тема | OID and PL/pgSQL trigger :-( |
Дата | |
Msg-id | 37C14F6A.EEB14AC4@iol.it обсуждение исходный текст |
Список | pgsql-hackers |
Hy all! I posted this mail on the general and sql mailing-list, but I got no aswer, so I try to post it here; if the question is bad-explained, please ask me more details... I would like to use OIDs as a primary key on every table of my db, because this seem to me a very smart thing to do..... but after some experiment, I've decided to create a SERIAL field on every table, and to use it as the primary key, and to abandon OIDs... This is an example of what I whould like to write (and I can't): CREATE FUNCTION firstTable_DelCascade() RETURNS OPAQUE AS ' BEGINDELETE FROM anotherTable WHERE anotherTable.OIDfromFirstTable = OLD.OID;RETURN OLD; END; ' LANGUAGE 'plpgsql'; Well, this can't work because OLD is of type RECORD, and type record have no OID :-( (this is what I found in the docs, about RECORD: "Only the user attributes of a table row are accessible in the row, no Oid or other system attributes (hence the row could be from a view and view rows don't have useful system attributes)" ) The main question is: can I get the OID of the OLD/NEW record in triggers? A more general question is: what is the usefulness of OIDs, if I can't use them in trigger? Paolo
В списке pgsql-hackers по дате отправления: