This section is from the "Practical PostgreSQL" book, by John Worsley and Joshua Drake. Also available from Amazon: Practical PostgreSQL.
The RENAME keyword allows you to change the name of a variable, record, or row. This is helpful if the NEW or OLD keyword is referenced by another name inside of a trigger procedure. For more details on triggers, refer to the Triggers section.
If you need to change the name of a variable, record, or row, use the rename syntax:
RENAME oldname TO newname;
Remember, rename is defined in the declarations section of a block. Here are two examples:
DECLARE
RENAME isbn TO book_id;
BEGIN
...
DECLARE
RENAME old TO author_row;
BEGIN
...
This function uses the rename keyword to rename a new row to be replaced into the book table. By renaming new to data, it can be called in the body of the function as data.
CREATE FUNCTION rename_new () RETURNS opaque AS ' DECLARE -- gives the new trigger variable name -- another name, data rename new to data; BEGIN -- returns the new row into the book table return data; END; ' LANGUAGE 'plpgsql';
For more information on trigger variables, refer to the trigger section.
This trigger invokes that function when an update occurs on the book table:
CREATE TRIGGER rename_new
BEFORE UPDATE on book
FOR EACH row
EXECUTE PROCEDURE rename_new();
 
Continue to: