相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  教學  /  在批次模式中使用 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 陳述式」