top
Loading...
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
作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/tutorial.html
北斗有巢氏 有巢氏北斗