Como você limpa uma consulta MySQL não executada da linha de comando?


88

Suponha que você esteja digitando uma consulta de linha de comando em um banco de dados MySQL e precise cancelar e reiniciar. Em um shell bash, você pode simplesmente digitar ctrl-c e obter um novo prompt. No MySQL, ctrl-c sai do cliente e retorna ao shell.

Por exemplo, eu tenho uma instrução SELECT longa e complexa digitada, mas ainda não pressionei return. Percebo que não quero enviar o comando, mas quero ter o comando na tela para que possa usá-lo como referência. Eu gostaria de sair sem sair do MySQL. Alguma ideia?

Ponto-chave: o comando ainda não foi executado .


10
Apenas como referência, no mysql 5.7, isso foi resolvido. Agora você pode usar ctrl-c para fazer exatamente isso.
dkniffin

A pilha LAMP é muito antiga e tem um uso muito difundido. Me confunde que demore tanto para consertar coisas que as pessoas teriam encontrado dia após dia.
ahnbizcad de

@dkniffin: Eu sei que essa é uma pergunta antiga, mas ainda está em primeiro lugar em uma pesquisa. Você poderia adicionar seu comentário como uma resposta (já é uma resposta) para ajudar a manter o tráfego?
chapéu de

@que tudo bem, eu adicionei como uma resposta
dkniffin

Respostas:


114

Digite \c.

Quando você iniciar o MySQL, provavelmente verá esta mensagem:

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

O "buffer" a que se refere é o buffer de comando / consulta.


7
Apenas um pequeno ponto: você deve fazer isso antes de qualquer terminador de ponto-e-vírgula.
wulftone

O bom é que na verdade não o limpa ; o que quer que seja digitado permanece visível. (Sinceramente, não teria adivinhado isso pela mensagem, e é por isso que nunca tentei.)
Michael Scheper

43

Primeiro digite Ctrl+ a, depois Ctrl+ k.


4
Mas o OP especificou: "Quero ter o comando na tela para poder usá-lo como referência."
ruakh

Funciona a partir da versão 5.5.40-0.
até

1
Não funciona com 5.6.28 @Ubuntu. Além disso, esta é uma sequência para encerrar a janela da tela atual.
Piohen

1
Bem, você sempre pode definir esta sequência como um atalho para isso e aquilo. É a sequência padrão no emacs e bash.
até

1
É claro que não funciona para o meu caso de uso mais comum: esqueci o ponto-e-vírgula, pressionei enter e, em vez de bagunçar meu histórico com duas linhas desnecessárias, prefiro reescrever o comando corretamente.
quazgar de

18

Use um dos seguintes atalhos para excluir a linha atual:

  • Digite Ctrl+ upara deletar tudo do cursor de volta ao início da linha
  • Digite Ctrl+ kpara deletar tudo desde o cursor até o final da linha

Caso contrário, conforme já indicado, digite \cno final da linha atual (um atalho para o clearcomando) e pressione Enter.


0

Se for um comando longo, eu geralmente uso a seta para o início do comando e adiciono algo sem sentido, então ele não será executado, mas posso usar a seta para cima e obter acesso sem precisar redigitá-lo. Caso contrário, se você quiser não executá-lo, basta clicar na seta para cima e ele deve rolar pelo seu histórico de comandos. Encontre um comando curto, pressione backspace e digite o que quiser.


0

Depende dos atalhos de teclado do seu shell. Você pode pressionar home ou qualquer sequência de teclas que usar para voltar ao início, prefixar sua consulta com X ou qualquer coisa para torná-la sintaticamente inválida, pressionar enter e você está bem


0

Se você veio aqui esperando encontrar a mesma resposta no Transact-SQL, digite RESET


0

No mysql 5.7, isso foi resolvido. Agora você pode fazer ctrl-cpara sair da linha de comando SQL.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.