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

Jak vypnu autocommit pro klienta MySQL?

Možná nejlepším způsobem je napsat skript, který spustí klienta příkazového řádku mysql a poté automaticky spustí libovolný sql, který chcete, než vám předá řízení.

linux přichází s aplikací nazvanou 'očekávat'. interaguje s shellem takovým způsobem, že napodobuje vaše stisky kláves. lze jej nastavit tak, aby spustil mysql, počkejte, až zadáte heslo. spustit další příkazy, jako je SET autocommit = 0; poté přejděte do interaktivního režimu, abyste mohli spustit libovolný příkaz.

pro více informací o příkazu SET autocommit = 0; viz.. http://dev.mysql. com/doc/refman/5.0/en/innodb-transaction-model.html

Používám očekávat, že se přihlásím k nástroji příkazového řádku, v mém případě spustí ssh, připojí se ke vzdálenému serveru, spustí aplikaci, zadá mé uživatelské jméno a heslo a poté předá řízení mně. ušetří mi spoustu psaní :)

http://linux.die.net/man/1/expect

DC

Očekávejte scénář poskytnutý Michaelem Hinds

spawn /usr/local/mysql/bin/mysql 
expect "mysql>" 
send "set autocommit=0;\r" 
expect "mysql>" interact

Očekávat je docela mocné a může hodně usnadnit život jako v tomto případě.

pokud chcete, aby skript běžel bez volání, očekávejte použití řádku shebang

vložte toto jako první řádek do skriptu (nápověda:použijte which expect najít umístění vašeho očekávaného spustitelného souboru)

#! /usr/bin/expect

poté změňte oprávnění vašeho skriptu pomocí..

chmod 0744 myscript

pak zavolejte skript

./myscript

DC



  1. Top 10 zajímavých faktů a tipů o MySQL

  2. VLOŽTE DO .. PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE pro více položek

  3. Entita Oracle v rámci entity VS neaktualizuje primární klíč v kódu

  4. MySQL Injection operátorem LIKE