я выполнить некоторые запросы MySQL с помощью START TRANSACTION
, но после того, как я исполняю COMMIT
следующие запросы не вступают в силу в базе данныхНевозможно выполнить любой запрос MySQL после COMMIT
Следующие запросы были выполнены с использованием mysqli_query в том же порядке:
SET names utf8
SET AUTOCOMMIT=0
START TRANSACTION
INSERT INTO table1 (a, b) VALUES (1,2) ;
INSERT INTO table2 (c, d) VALUES (1,1) ;
INSERT INTO table2 (c, d) VALUES (2,1) ;
COMMIT
INSERT INTO table3 (e, f) VALUES (9,7) ;
< - Это ничего не вставлять !!
Примечание: Последний запрос должен быть выполнен из блока START TRANSACTION
COMMIT
.
Это действительно сводит меня с ума. Потому что я не могу понять проблему!
Последний запрос должен быть выполнен после 'COMMIT', потому что он должен быть выполнен, будь то' COMMIT' или 'ROLLBACK'. Извините, что я не сделал этого ясно в вопросе. –
Чтобы отключить режим автосохранения в явном виде, используйте следующую инструкцию: SET autocommit = 0; После отключения режима autocommit, установив переменную autocommit в ноль, изменения в безопасных для транзакции таблицах (например, для InnoDB, BDB или NDBCLUSTER) не становятся постоянными немедленно. Вы должны использовать COMMIT для сохранения изменений на диске или ROLLBACK, чтобы игнорировать изменения. – ste
Дополнительная информация: https://dev.mysql.com/doc/refman/5.0/ru/commit.html – ste