python 操作MySQL数据库使用"insert into ... on duplicate key update"报错问题
2017-12-14 17:34
645 查看
我们经常会遇到这种需求:向数据库中插入数据,如果库中已经有了该条记录就更新,没有才作插入操作.在MySql中会使用到insert into … on
duplicate key update,在使用python操作"on
duplicate key update"时遇到了"not all arguments converted during string formatting."错误.
方式1:
使用这种方式会报错:not all arguments converted during string formatting.该报错说明有的参数没有被解析到占位符.经过调试发现sql语句中"blog(id,title,content) values"的)与values之间有空格造成的,去掉即可:"blog(id,title,content)values",原因没有研究过.
方式2:
推荐使用下面这种方式,一般不会出现上面那种错误.
duplicate key update,在使用python操作"on
duplicate key update"时遇到了"not all arguments converted during string formatting."错误.
方式1:
# -*- coding: UTF-8 -*- import MySQLdb db = MySQLdb.connect("localhost","root","root","blog" ) cursor = db.cursor() sql = "insert into blog(id,title,content) values(%s,%s,%s) on duplicate key update title = %s,content=%s" try: cursor.executemany(sql,[[1,'myTitle','myContent','updateMyTitle','updateMyContent']]) except Exception,e: print e # 关闭数据库连接 cursor.close() db.commit() db.close()
使用这种方式会报错:not all arguments converted during string formatting.该报错说明有的参数没有被解析到占位符.经过调试发现sql语句中"blog(id,title,content) values"的)与values之间有空格造成的,去掉即可:"blog(id,title,content)values",原因没有研究过.
方式2:
推荐使用下面这种方式,一般不会出现上面那种错误.
# -*- coding: UTF-8 -*- import MySQLdb db = MySQLdb.connect("localhost","root","root","blog" ) cursor = db.cursor() sql = "insert into blog(id,title,content) values(%s,%s,%s) on duplicate key update title = values(title),content=values(content)" try: cursor.executemany(sql,[[16,'aaa2','bbb2']]) except Exception,e: print e # 关闭数据库连接 cursor.close() db.commit() db.close()
相关文章推荐
- mybatis中使用replace into和 insert INTO … ON DUPLICATE KEY UPDATE批量操作
- 关于python中使用mongodb模块,save和insert的小问题
- Python操作列表之List.insert()方法的使用
- python操作mysql数据库如何解决中文乱码的问题
- python操作mysql数据库的常用方法使用详解
- mysql 中使用insert into table() values();插入中文问题
- Python中操作MySQL数据库返回值的问题
- 连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决
- python操作MySQL数据库增删改查使用MySQLdb
- Python中使用SQLAlchemy连接Mysql数据库(单表操作)
- 使用insert into openrowset剩下的问题
- python爬虫,selenium使用,Firefox-chrome-IE问题解决方法,selenium的基本操作
- Python操作Mysql数据库时SQL语句的格式问题
- Mybstis insert操作详解及在使用过程中遇到的问题
- 关于操作Access数据报System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误异常问题
- python操作mysql数据库的常用方法使用详解
- Linux下使用Python操作MySQL数据库
- 关于使用框架操作Oracle数据库切换MySQL数据库时,nextval的问题!
- Python3使用mysql.connector操作mysql数据库
- Python操作列表之List.insert()方法的使用