5.1 活動語言

MySQL Shell 可以執行 SQL、JavaScript 或 Python 程式碼,但一次只能啟用一種語言。活動模式決定了如何處理執行的陳述式

  • 如果使用 SQL 模式,陳述式會被處理為 SQL,這表示它們會被傳送到 MySQL 伺服器執行。

  • 如果使用 JavaScript 模式,陳述式會被處理為 JavaScript 程式碼。

  • 如果使用 Python 模式,陳述式會被處理為 Python 程式碼。

注意

MySQL Shell 使用 Python 3。對於包含系統支援安裝的 Python 3 的平台,MySQL Shell 會使用可用的最新版本,最低支援版本為 Python 3.4.3。對於未包含 Python 3 的平台,MySQL Shell 會捆綁 Python 3.7.4。MySQL Shell 維持與 Python 2.6 和 Python 2.7 的程式碼相容性,因此如果您需要這些較舊的版本之一,可以使用適當的 Python 版本從原始碼建置 MySQL Shell。

在互動模式下執行 MySQL Shell 時,輸入命令來啟用特定語言:\sql\js\py

在批次模式下執行 MySQL Shell 時,傳遞以下任何命令列選項來啟用特定語言:--js--py--sql。如果未指定任何選項,則預設模式為 SQL。

使用 MySQL Shell 將檔案 code.sql 的內容以 SQL 執行。

$> mysqlsh --sql < code.sql

使用 MySQL Shell 將檔案 code.js 的內容以 JavaScript 程式碼執行。

$> mysqlsh --js < code.js

使用 MySQL Shell 將檔案 code.py 的內容以 Python 程式碼執行。

$> mysqlsh --py < code.py

您可以在其他語言處於活動狀態時執行單一 SQL 陳述式,方法是輸入緊接著 SQL 陳述式的 \sql 命令。例如

mysql-py> \sql select * from sakila.actor limit 3;

SQL 陳述式不需要任何額外的引號,而且陳述式分隔符號是可選的。此命令只接受單一行的單一 SQL 查詢。使用這種格式,MySQL Shell 不會像您輸入 \sql 命令時那樣切換模式。SQL 陳述式執行後,MySQL Shell 會保持在 JavaScript 或 Python 模式。

您可以在任何語言處於活動狀態時執行作業系統命令,方法是輸入緊接著要執行的命令的 \system\! 命令。例如

mysql-py> \system echo Hello from MySQL Shell!

MySQL Shell 會顯示作業系統命令的輸出,或在無法執行命令時傳回錯誤。