Давным-давно я написал класс php, который обрабатывает соединения db с postgresql.
Я добавил транзакции к своим функциям вставки / обновления, и они прекрасно работают для меня. Но недавно я узнал о функции "pg_prepare".
Я немного озадачен тем, что делает эта функция, и будет ли лучше переключиться на нее.
В настоящее время, когда я делаю вставку / обновление, мой sql выглядит так:
$transactionSql = "PREPARE TRANSACTION ".md5(time()).";"
.$theUpdateOrDeleteSQL.";".
."COMMIT;";
This will return something like:
PREPARE TRANSACTION '4601a2e4b4aa2632167d3cc62b516e6d';
INSERT INTO users (username,g_id,email,password)
VALUES('test', '1', 'test','1234');
COMMIT;
Я структурировал свою базу данных отношениями и использую (когда это возможно):
ON DELETE CASCADE
ON UPDATE CASCADE
Но я хочу быть на 100% уверенным, что в базе данных все чисто, и нет остатков, если / когда произошел сбой при обновлении / удалении или вставке.
Было бы неплохо, если бы вы поделились своим мнением / опытом в отношении pg_prepare, действительно ли мне нужна "подготовка транзакции" и какие-либо другие дополнительные вещи, которые могут мне помочь? :)