相關文件 下載本手冊
PDF (美式 Letter) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  教學  /  以批次模式使用 mysql

5.5 以批次模式使用 mysql

在前幾個章節中,您以互動方式使用 mysql 來輸入陳述式並檢視結果。您也可以在批次模式下執行 mysql。若要執行此操作,請將您要執行的陳述式放入檔案中,然後告知 mysql 從檔案讀取其輸入。

$> mysql < batch-file

如果您在 Windows 下執行 mysql,並且檔案中有一些特殊字元導致問題,您可以這樣做

C:\> mysql -e "source batch-file"

如果您需要在命令列上指定連線參數,則命令可能看起來像這樣

$> mysql -h host -u user -p < batch-file
Enter password: ********

當您以這種方式使用 mysql 時,您正在建立指令碼檔案,然後執行該指令碼。

如果您希望指令碼即使其中的某些陳述式產生錯誤也能繼續執行,則應使用 --force 命令列選項。

為什麼要使用指令碼?以下是一些原因

  • 如果您重複執行查詢(例如,每天或每週),將其設為指令碼可讓您避免每次執行時重新輸入。

  • 您可以從現有類似的查詢產生新的查詢,方法是複製和編輯指令碼檔案。

  • 在您開發查詢時,批次模式也很有用,尤其適用於多行陳述式或多個陳述式序列。如果您犯了錯誤,則不必重新輸入所有內容。只需編輯您的指令碼以更正錯誤,然後告知 mysql 再次執行它。

  • 如果您的查詢產生大量輸出,您可以將輸出透過分頁程式傳送,而不是看著它從螢幕頂端捲動消失

    $> mysql < batch-file | more
  • 您可以將輸出擷取到檔案中以進行進一步處理

    $> mysql < batch-file > mysql.out
  • 您可以將您的指令碼發佈給其他人,以便他們也可以執行這些陳述式。

  • 某些情況不允許互動使用,例如,當您從 cron 作業執行查詢時。在這種情況下,您必須使用批次模式。

當您在批次模式下執行 mysql 時,預設輸出格式與您以互動方式使用時不同(更簡潔)。例如,當以互動方式執行 mysql 時,SELECT DISTINCT species FROM pet 的輸出看起來像這樣

+---------+
| species |
+---------+
| bird    |
| cat     |
| dog     |
| hamster |
| snake   |
+---------+

在批次模式下,輸出看起來像這樣

species
bird
cat
dog
hamster
snake

如果您想在批次模式下取得互動式輸出格式,請使用 mysql -t。若要將執行的陳述式回顯到輸出,請使用 mysql -v

您也可以使用 source 命令或 \. 命令,從 mysql 提示符號使用指令碼

mysql> source filename;
mysql> \. filename

如需詳細資訊,請參閱 第 6.5.1.5 節,「從文字檔案執行 SQL 陳述式」