MySQL Shell 8.4  /  MySQL Shell 代码执行  /  活动语言

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 显示来自操作系统命令的输出,或者如果无法执行命令,则返回错误。