Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como desativo o autocommit para um cliente MySQL?


Talvez a melhor maneira seja escrever um script que inicie o cliente de linha de comando mysql e, em seguida, execute automaticamente o sql desejado antes de passar o controle para você.

linux vem com um aplicativo chamado 'expect'. ele interage com o shell de forma a imitar seus toques de tecla. ele pode ser configurado para iniciar o mysql, espere você digitar sua senha. execute outros comandos como SET autocommit = 0; em seguida, entre no modo interativo para poder executar qualquer comando que desejar.

para saber mais sobre o comando SET autocommit = 0; veja .. http://dev.mysql. com/doc/refman/5.0/en/innodb-transaction-model.html

Eu uso o expect para fazer login em um utilitário de linha de comando no meu caso, ele inicia o ssh, conecta-se ao servidor remoto, inicia o aplicativo, insere meu nome de usuário e senha e passa o controle para mim. me poupa muita digitação :)

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

DC

Espere script fornecido por Michael Hinds
spawn /usr/local/mysql/bin/mysql 
expect "mysql>" 
send "set autocommit=0;\r" 
expect "mysql>" interact

expect é bastante poderoso e pode tornar a vida muito mais fácil como neste caso.

se você quiser fazer o script rodar sem chamar, use a linha shebang

insira isso como a primeira linha em seu script (dica:use which expect para encontrar a localização do seu executável esperado)
#! /usr/bin/expect

em seguida, altere as permissões do seu script com ..
chmod 0744 myscript

então chame o script
./myscript

DC