Implement the Trigger interface and check the oldRow vs newRow
parameters to see which fields have changed.

On Tue, Nov 29, 2011 at 16:00, Christian Bauer
<[email protected]> wrote:
> This TriggerAdapter updates the LASTMODIFIED column of the inserted or 
> updated row:
>
>    @Override
>    public void fire(Connection conn, ResultSet oldRow, ResultSet newRow) 
> throws SQLException {
>        if (newRow == null ) return; // This is a DELETE
>        PreparedStatement statement = conn.prepareStatement(
>                "update " + schemaName + "." + tableName +
>                        " set LASTMODIFIED = current_timestamp()" +
>                        " where ID = ?"
>        );
>        // TODO: This assumes the PK column is named "ID"
>        Long id = newRow.getLong("ID");
>        statement.setLong(1, id);
>        statement.execute();
>    }
>
> I get an infinite loop when statement.execute() is called, the trigger is 
> fired again for the timestamp update, and so on. I'm not sure I can come up 
> with a flag to detect the re-entry of the trigger code. Is there a safe way 
> to modify the "current" state in a trigger?
>
> --
> You received this message because you are subscribed to the Google Groups "H2 
> Database" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/h2-database?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to