I would like to archive any records which have been deleted to a backup table. I tried using a trigger to do this:

CREATE OR REPLACE TRIGGER archiveClient
BEFORE DELETE ON Client
FOR EACH ROW
BEGIN
INSERT INTO zClient
SELECT sysdate, Client.*
FROM Client;
COMMIT;
END archiveClient;

Here, the backup table zClient has the same fields as Client, but without any constraints. There is one extra field, DateDeleted, which is filled by sysdate as above.

Unfortunately, I am getting a mutating table error, ORA-06512. Can anyone please suggest the correct way to do this?