Hi,

I'm trying to figure out how to do this from the documentation, but I can't figure it out. :-(

Here is what I'm trying to do:

CREATE TABLE MyTable
(
        ID      bigserial unique,
        MyData  char(255),
        PRIMARY KEY (ID)
);

CREATE TABLE Archive_MyTable
(
        ID      bigserial unique,
        MyData  char(255),
        PRIMARY KEY (ID)
);

CREATE FUNCTION MyTable_Trigger_DELETE()
RETURNS ???opaque/trigger/HeapTuple??? AS '
INSERT INTO Archive_MyTable
(
        ID,
        MyData
)
VALUES
(
        OLD.ID,
        OLD.MyData
);
RETURN OLD;
' LANGUAGE SQL;

This gives me one of the following errors:
ERROR:  SQL functions cannot return type opaque
ERROR:  SQL functions cannot return type "trigger"
ERROR:  type "heaptuple" does not exist

What type should my function be returning?
ERROR: type

Then I'd like to do the following:

CREATE TRIGGER MyTable_Trigger_DELETE BEFORE DELETE ON MyTable
FOR EACH ROW
EXECUTE PROCEDURE MyTable_Trigger_DELETE();

Can I create a trigger function like this? If not, what are my options WRT alternatives?

Many thanks.

Gordan

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to