2015-05-05 14 views
0

我想擁抱mySQL命令的原始形式,而不使用phpMyAdmin,我跑到這個小問題到目前爲止...一些mySQL語句只有在追加 g後才起作用,其他語句不介意?

我只是想知道,我可以連接到我的數據庫使用wamp服務器和一些如果沒有在\ g之後鍵入命令,命令將不起作用舉例來說,我可以連接,輸入我的密碼,然後立即如果我只是試圖通過創建一個數據庫:

CREATE DATABASE testing 

它推我到一個新行,看起來像這樣:

mysql> CREATE DATABASE testing 
    -> 

1。在發生這種情況後,如何返回到常規線路?我一直不得不關閉命令提示符並重新啓動,這是一個麻煩。 2.爲什麼要這樣做?然後當我輸入下面的命令工作得很好。好吧,現在如果是這種情況,我只會理解,並且總是在\ g之後鍵入\ g,因爲我知道在編程中有些事情只是「有」。但是,然後,我可以輸入這行沒有\ g,它會改變數據庫就好。

USE firstdb 

我還沒有進一步測試上命令執行和有/無GO命令不工作,但我認爲我會問之前,我迷惑自己一百萬次。

非常感謝SO社區! Thx提前。 (另外,因爲我是新手,所以有人可以留下評論,關於如何創建這些代碼片段,但是以內聯塊格式,所以我不必總是必須打破我的代碼引用換成新行?謝謝!)

+4

您需要用';'結尾語句 – Uueerdo

+2

所有的MySQL命令都需要分隔符。使用,退出,幫助等是規則的例外。 – Strawberry

回答

1

分號;是SQL中的標準語句分隔符。在MySQL的情況下,服務器不需要看到它,所以命令行客戶端實際上並沒有發送它......但它等待它,沒有任何東西被髮送到服務器,直到一個分隔符後面跟着一個換行符遇到。

異常是指不會發送到服務器的事情,或者不會作爲SQL發送。 (除USE聲明之外,還有另外一種方法可以使用特製的數據包更改當前數據庫,並且MySQL cli仍然使用該方法,這也是我爲什麼USE是個奇怪的例外。)

您可以將分隔符更改爲別的。通常情況下,你會看到這樣的事情

mysql> DELIMITER $$ 

這允許您發送SQL到包含;整塊的服務器,未經客戶的思維,當它看到的東西看起來像一個分隔符你做。這用於聲明過程,函數,觸發器和事件。在聲明結束時,或者以$$終止每個聲明,您將其設置回。

mysql> DELIMITER ; 

請注意,在;之前有空格。