如何在MySQL Workbench中使用Python脚本执行SQL查询

时间:2013-04-04 21:23:57

标签: python mysql mysql-python mysql-workbench database-administration

我想从MySQL Workbench中的Python脚本环境执行SQL查询。我查看了MySQL Workbench documentation for the grt module并找到了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

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

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

谢谢!

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

3 个答案:

答案 0 :(得分:3)

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

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

    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 Python for Python”

答案 1 :(得分: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

答案 2 :(得分:0)

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

from grt import executeScript

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