5

我想从 MySQL Workbench 中的 Python 脚本环境执行 SQL 查询。我查看了 grt 模块的 MySQL Workbench 文档并找到了 executeScript 方法,但我似乎无法使用它来进行查询。

执行此 Python 代码:

import grt

querystring = "select * from Purchases WHERE PurchaseAmount > 600 and PurchaseAmount < 2500"
executeScript(querystring)

产生以下错误消息:

Uncaught exception while executing [filepath]runquery.py:

File "[filepath]runquery.py", line 10, in <module>

executeScript(querystring)

NameError: name 'executeScript' is not defined

我不明白 virtual grt::ListRef executeScript ( const std::string & sql )是什么意思,所以我无法正确格式化我的查询,但是,错误消息似乎表明 executeScript 方法无论如何都不存在。我查看的大多数文档都有格式正确的函数调用示例,但我似乎找不到任何用于 executeScript 的文档。

我想做的只是在 MySQL Workbench Python 脚本环境中将我的字符串作为 SQL 查询运行。

谢谢!

我是 Python 和 SQL 的新手,所以请耐心等待。:)

4

3 回答 3

3

要运行 executeScript 函数,您需要与 sqleditor 对象进行交互。为了进行测试,请在 MS Windows 上使用示例数据库执行以下操作:

  1. 启动 MySQLWorkbench
  2. 连接到本地数据库
  3. 从 SCHEMAS 中选择 sakila
  4. 使用 Tools->scripting shell 或 (Ctrl+F3) 启动脚本 shell
  5. 添加新的python脚本(test.py)
  6. 使用以下内容保存脚本
  7. 在脚本外壳中运行脚本

脚本内容:

import grt

result = grt.root.wb.sqlEditors[0].executeScript("select * from actor limit 10;")

for col in result[0].columns:
    print col.name

要了解如何在脚本中引用对象,很容易使用 Globals Tree 面板的类浏览器并使用鼠标右键单击对象并选择“Copy Path for Python”

于 2014-02-21T11:39:47.403 回答
1

如果您需要在 Windows 中从命令行运行脚本,您可以运行类似以下命令:

"C:\Program Files\MySQL\MySQL Workbench 6.1 CE\MySQLWorkbench.exe" -query "Local instance MySQL56" -run-python "execfile('c:\Users\Root\AppData\Roaming\MySQL\Workbench\scripts\script.py')" -log-to-stderr -v
于 2014-05-12T17:22:42.790 回答
0

(第一个)问题似乎是您使用了一个名为 executeScript() 的函数,该函数尚未定义或从任何地方获取。如果它在 grt 模块中(我不熟悉),则必须按以下方式进行:

from grt import executeScript

querystring = "select * from Purchases WHERE PurchaseAmount > 600 and PurchaseAmount < 2500"
executeScript(querystring)
于 2013-04-04T21:57:41.560 回答