Testing Inserts, Deletes and Updates before execution ...
Dear list,
i am looking for a way to check, whether an DML-statement can be
performed on a current database. That means, that i want to check, if
e.g. an INSERT is possible or not (due to existing constraints), without
executing it.
Any ideas?
Hagen
Hagen Hoepfner wrote:
i am looking for a way to check, whether an DML-statement can be
performed on a current database. That means, that i want to check, if
e.g. an INSERT is possible or not (due to existing constraints), without
executing it.
I think this could be the easiest way: try it and rollback.
BEGIN;
SET CONSTRAINTS ALL IMMEDIATE; -- if you have deferred foreign key, e.g.
INSERT .... -- check if it works
ROLLBACK;
That should do what you want, IMHO.
In PostgreSQL 8.0 you would not need your own transaction here...
BEGIN;
-- do some work
SAVEPOINT check_dml;
INSERT ... -- check if it works
ROLLBACK TO check_dml;
-- do some more work
COMMIT;
Could this be what you want?
Best Regards,
Michael Paesold