python - 无法使用 Python mysqldb 模块使 MySQL 源查询正常工作

标签 python mysql scripting

我有以下几行代码:

sql = "source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql"
cursor.execute (sql)

当我执行我的程序时,出现以下错误:

Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source C:\My Dropbox\workspace\projects\hosted_inv\create_site_db.sql' at line 1

现在我可以将以下内容作为查询复制并粘贴到 mysql 中:

source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql

而且效果很好。当我检查我的脚本执行的查询的查询日志时,它显示我的查询如下:

source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql

但是,当我手动粘贴并执行时,整个 create_site_db.sql 在查询日志中展开并显示该文件中的所有 sql 查询。

我是否遗漏了一些关于 mysqldb 如何查询的信息?我遇到了限制吗?我的目标是运行一个 sql 脚本来创建模式结构,但我不想在 shell 进程中调用 mysql 来获取 sql 文件。

有什么想法吗?谢谢!

最佳答案

正如其他人所说,您不能在 MySQLdb Python API 中使用命令 source

因此,与其运行它,不如加载文件并执行它

假设您的 .sql 文件有

create database test;

阅读喜欢的内容

sql=open("test.sql").read()

然后执行

cursor.execute(sql);

你会得到新的数据库“test”

关于python - 无法使用 Python mysqldb 模块使 MySQL 源查询正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1932298/

相关文章:

powershell - 如何在Powershell中获取Parent的父目录?

linux - shell脚本匹配来自另一个文本文件的数据

python - groupby 和过滤 Pandas

python - 将值连接到数据框

php - 谷歌可视化 API + SQL

LEFT JOINed 表上的 MySQL COUNT 忽略无连接记录

python - pip 无法安装 pkg,因为 - 尽管有 Linux 适配要求,但该平台上不支持 Wheel

python - Pandas :结合子集和过滤

mysql - 如何在mysql中使用相应的更新表传递值

linux - 过去 15 分钟创建的 Tar 文件并将它们 SCP 到我的本地计算机。 (使用 Cygwin)