MySQL提示符

下表顯示出可以看見的各個提示符並簡述它們所表示的mysql的狀態:

提示符

含義

mysql>

準備好接受新命令。

->

等待多行命令的下一行。

'>

等待下一行,等待以單引號(“'”)開始的字符串的結束。

">

等待下一行,等待以雙引號(“"”)開始的字符串的結束。

`>

等待下一行,等待以反斜點(‘`’)開始的識別符的結束。

/*>

等待下一行,等待以/*開始的註釋的結束。

當你打算在一個單行上發出一個命令時,通常會“偶然”出現多行語句,但是沒有終止分號。在這種情況中,mysql等待進一步輸入:

mysql> SELECT USER()
    ->

如果出現這種情況(你認爲輸完了語句,但是隻有一個->提示符響應),很可能mysql正在等待分號。如果你沒有注意到提示符的提示,在意識到你需要做什麼之前,你可能會呆坐一會兒。輸入一個分號完成語句,mysql將執行:

mysql> SELECT USER()
    -> ;
+---------------+
| USER()        |
+---------------+
| xiangziw@localhost |
+---------------+

在字符串收集期間將出現 '> 和 "> 提示符(提示MySQL正等待字符串的結束)。在MySQL中,可以寫由‘'’或‘"’字符括起來的字符串 (例如,'hello'或"goodbye"),並且mysql允許輸入跨越多行的字符串。當看到一個 '> 或 "> 提示符時,這意味着已經輸入了包含以‘'’或‘"’括號字符開始的字符串的一行,但是還沒有輸入終止字符串的匹配引號。這顯示你粗心地省掉了一個引號字符。例如:

mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
    '>

如果你輸入SELECT語句,然後按Enter(回車)鍵並等待結果,什麼都沒有出現。不要驚訝,“爲什麼該查詢這麼長呢?”,注意">提示符提供的線索。它告訴你mysql期望見到一個未終止字符串的餘下部分。(你看見語句中的錯誤嗎?字符串"Smith丟掉了第二個引號。)

走到這一步,你該做什麼?最簡單的是取消命令。然而,在這種情況下,你不能只是輸入\c,因爲mysql作爲它正在收集的字符串的一部分來解釋它!相反,應輸入關閉的引號字符(這樣mysql知道你完成了字符串),然後輸入\c:

mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
    '> '\c
mysql>

提示符回到mysql>,顯示mysql準備好接受一個新命令了。

`> 提示符類似於 '> 和"> 提示符,但表示你已經開始但沒有結束以`> 開始的識別符。

知道'>和">提示符的含義很重要,因爲如果你錯誤地輸入一個未終止的字符串,任何後面輸入的行將要被mysql忽略--包括包含QUIT的行!這可能令人相當困惑,特別是如果取消當前命令前還不知道你需要提供終止引號。

如果你決定不想執行正在輸入過程中的一個命令,輸入\c取消它:

mysql> SELECT
    -> USER()
    -> \c
mysql>

這裏也要注意提示符,在你輸入\c以後,它切換回到mysql>,提供反饋以表明mysql準備接受一個新命令。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章