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