Re: Testing Inserts, Deletes and Updates before execution ...

Поиск
Список
Период
Сортировка
От Michael Paesold
Тема Re: Testing Inserts, Deletes and Updates before execution ...
Дата
Msg-id 007601c4aec1$63a64a20$0a01a8c0@zaphod
обсуждение исходный текст
Ответ на Testing Inserts, Deletes and Updates before execution ...  (Hagen Hoepfner <Hagen.Hoepfner@gmx.de>)
Список pgsql-general
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

В списке pgsql-general по дате отправления:

Предыдущее
От: Hagen Hoepfner
Дата:
Сообщение: Testing Inserts, Deletes and Updates before execution ...
Следующее
От: Pierre-Frédéric Caillaud
Дата:
Сообщение: Re: OS not good for database