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 以 SQL 形式執行 code.sql
檔案的內容。
$> mysqlsh --sql < code.sql
使用 MySQL Shell 以 JavaScript 程式碼形式執行 code.js
檔案的內容。
$> mysqlsh --js < code.js
使用 MySQL Shell 以 Python 程式碼形式執行 code.py
檔案的內容。
$> 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 會顯示作業系統命令的輸出,如果無法執行命令,則會傳回錯誤。