首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python生成sql文件(用于mysql)

用python生成sql文件(用于mysql)
EN

Stack Overflow用户
提问于 2014-05-31 21:56:28
回答 1查看 7.5K关注 0票数 0

我需要在txt文件中写入带有所有值转义的sql语句,以便以后可以将其导入mysql数据库。

  • 一些背景信息:我最近在python中创建了一个程序,它读取csv文件并将数据插入到远程mysql数据库。程序除了insert语句之外,还执行几个select语句来收集一些信息,如主键、最大ids等。
  • 一般情况下,我需要做的是:由于整个过程都很耗时,所以我希望有一种方法将所有语句写入一个.sql文件中,这样我就可以通过PhpMyAdmin将其导入到mysql数据库。
  • 我尝试的内容以及我所坚持的地方:到目前为止,我可以通过连接文本来生成sql语句。但我还是坚持到了需要转义角色的地步。

在Server中,我可以包含N'‘之间的任何文本,并且它会接受它。在MySQL中有类似的地方吗?

server中的示例:n‘’My转义文本不受单引号->‘或双引号“的影响

注意,我用N'‘包围了文本。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-06-01 01:10:23

你要学习如何使用预先准备好的语句。它们为您解决了几个问题,包括转义字符和防止SQL注入。下面是MySQLdb的一个示例:

代码语言:javascript
复制
myValues = (value1, value2)
sql = "INSERT INTO myTable (column1, column2) VALUES (%s, %s)"
cursor.execute(sql, myValues)

===

对不起,我想我误解了你的问题。您不希望编写一个Python脚本来读取文件并将数据插入数据库。您希望使用Python生成可以直接导入数据库的SQL文档。

我建议使用Python查询数据库,但是如果您真的想创建一个SQL文档,那么您的所有数据值都需要用单引号括起来,如果数据中有单引号,可以使用双引号转义它们:

代码语言:javascript
复制
INSERT INTO myTable (column1, column2) VALUES ('My data', 'John''s data');

如果分号(;)在单引号中,则其他特殊字符将被忽略。

如果您担心表名和列名中的特殊字符,可以向它们添加回标:

代码语言:javascript
复制
INSERT INTO `myTable` (`column1`, `column2`) VALUES ('My data', 'John''s data');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23974807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档