views:

192

answers:

1

I'm trying to intercept any DELETE commands against a particular table. MySQL supports triggers but it doesn't seem to support a way to raise an error yet like SQL Server and other databases.

Can I do this with just an empty Trigger definition? Something like:

create trigger trListsDelete on lists
instead of delete
as
begin
  /* Do nothing */
end

In SQL Server I could add a RAISEERROR('You cannot delete lists.') statement to force it to fail and that way I know the Delete wouldn't be executed. Since MySQL doesn't support raising errors, how do I simply ignore the Delete command?

+2  A: 

The technique is you do something that will cause an error, such as update a column that doesn't exist.

Details here: http://www.brokenbuild.com/blog/2006/08/15/mysql-triggers-how-do-you-abort-an-insert-update-or-delete-with-a-trigger/

Alan Jackson