我有以下几行代码:
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/