3.5.在批處理模式下使用mysql
3.5. 在批處理模式下使用mysql
在前面的章節中,你交互式地使用mysql輸入查詢并且查看結果。你也可以以批模式運行mysql。為了做到這些,把你想要運行的命令放在一個文件中,然后告訴mysql從文件讀取它的輸入:
shell> mysql < batch-file
如果在Windows下運行mysql,并且文件中有一些可以造成問題的特殊字符,可以這樣操作:
C:> mysql -e "source batch-file"
如果你需要在命令行上指定連接參數,命令應為:
shell> mysql -h host -u user -p < batch-file
Enter password: ********
當這樣操作mysql時,則創建一個腳本文件,然后執行腳本。
如果你想在語句出現錯誤的時候仍想繼續執行腳本,則應使用--force命令行選項。
為什么要使用一個腳本?有很多原因:
- 如果你需要重復運行查詢(比如說,每天或每周),可以把它編成一個腳本,則每次執行時不必重新鍵入。
- 可以通過拷貝并編輯腳本文件從類似的現有的查詢生成一個新查詢。
- 當你正在開發查詢時,批模式也是很有用的,特別對多行命令或多語句命令序列。如果你犯了一個錯誤,你不必重新輸入所有內容,只需要編輯腳本來改正錯誤,然后告訴mysql再次執行腳本。
- 如果你有一個產生多個輸出的查詢,你可以通過一個分頁器而不是盯著它翻屏到屏幕的頂端來運行輸出:
· shell> mysql < batch-file | more
- 你可以捕捉文件中的輸出以便進行進一步的處理:
· shell> mysql < batch-file > mysql.out
- 你可以將腳本分發給另外的人,以便他們也能運行命令。
- 某些情況不允許交互地使用,例如, 當你從一個cron任務中運行查詢時。在這種情況下,你必須使用批模式。
當你以批模式運行mysql時,比起你交互地使用它時,其默認輸出格式是不同的(更簡明些)。例如,當交互式運行SELECT DISTINCT species FROM pet時,輸出應為:
+---------+
| species |
+---------+
| bird |
| cat |
| dog |
| hamster |
| snake |
+---------+
但是當以批模式運行時,輸出應為:
species
bird
cat
dog
hamster
snake
如果你想要在批模式中得到交互輸出格式,使用mysql -t。為了回顯以輸出被執行的命令,使用mysql -vvv。
你還可以使用源代碼或 .命令從mysql提示符運行腳本:
mysql> source filename;
mysql> . filename