sql >> Databáze >  >> RDS >> Mysql

Potvrdí mysql_query vše

Staré rozšíření mysql nemá funkce speciálně pro řízení transakcí, ale můžete zadávat příkazy SQL, abyste dělali, co chcete.

Autocommit po dobu trvání jedné transakce můžete implicitně vypnout jednoduchým zahájením transakce:

mysql_query("START TRANSACTION");

Jakmile COMMIT nebo ROLLBACK, režim automatického potvrzení se vrátí na výchozí.

mysql_query("COMMIT"); // or ROLLBACK

Autocommit pro celou relaci můžete vypnout nastavením proměnné relace:

mysql_query("SET autocommit=0");

Nebo jej změňte globálně ve své instanci MySQL, aby se změnilo výchozí nastavení pro všechny relace:

mysql_query("SET GLOBAL autocommit=0");

Nebo jej nastavte na změnu globálního nastavení při spuštění služby MySQL úpravou /etc/my.cnf:

[mysqld]
autocommit=0

Pokud používáte MySQL 5.1, musíte to udělat trochu jinak:

[mysqld]
init_connect='SET autocommit=0'

Pravděpodobně už víte, ale stojí za to zopakovat, že transakce znamenají cokoliv, pouze pokud používáte tabulky InnoDB. Tabulky MyISAM nepodporují transakce, takže jsou vždy automaticky potvrzeny bez ohledu na vaše nastavení. Totéž s několika dalšími moduly úložiště, včetně MEMORY a CSV.




  1. ORA-01036:neplatný název/číslo proměnné při spuštění dotazu přes C#

  2. Jak se připojím k databázi SQL Server 2008 pomocí JDBC?

  3. Jak odstranit všechny duplicitní záznamy v PHP/Mysql

  4. Duplikování tabulky, indexů a dat MySQL