开发者

I seem to 'break' my mysql client when I type in a Postgres command. Any ideas how to undo this?

开发者 https://www.devze.com 2023-01-23 05:09 出处:网络
Note: I\'m using a bash shell on a nearly-fresh osx 10.6 install.This doesn\'t seem to happen to a friend who is on zsh

Note: I'm using a bash shell on a nearly-fresh osx 10.6 install. This doesn't seem to happen to a friend who is on zsh

I'm used to Postgres, so I often instinctually type

\d tablename

instead of

desc tablename ;

When I do this, the mysql client is not very happy

mysql> \d items
mysql> ;
    -> desc items;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
    -&g开发者_运维问答t;

notice how my prompt changes after the 'oh crap' moment. It seems to lock into this routine where all sql commands are considered to have invalid syntax.

i haven't figured out a sequence yet to escape this yet; nor have i figured out what is going on.

has anyone else encountered this, and knows how to get out of it ? the only fix i've found is to ctrl-c and start a new mysql connection - and that's just not a proper fix.


In MySQL, \d changes the query delimiter, which is normally ;. So you've actually changed your delimiter to items. For instance, try doing this:

\d items
desc items items
select 1 items

Fun times.

To change it back to semicolon, just do \d ;


\d changes the statement delimiter.

You need to change it back to ;

But you can't end a statement until you type tablename

so try typing tablename followed by \d ;

Personally ctrl-c up-arrow enter seems easier. Especially since mysql still remembers your command history between sessions.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号