python mysql 字段与关键字冲突的解决方式
解决方法:python中把字段名称用反引号(`),也就是ESC下面~那个按钮。
示例:
数据字段设计如下截图所示
待插入数据:
datas={ 'sign_event':[ {'id':1,'name':'华为mate9发布会','limit':100,'status':1,'address':'会展中心1号厅','start_time':'2017-09-2014:00:00','create_time':'2017-08-2014:00:00'}, {'id':2,'name':'华为P1000发布会','limit':200,'status':1,'address':'会展中心2号厅','start_time':'2017-09-2014:00:00','create_time':'2017-08-2014:00:00'}, {'id':3,'name':'IPHONE888发布会','limit':300,'status':1,'address':'会展中心3号厅','start_time':'2017-09-2014:00:00','create_time':'2017-08-2014:00:00'}, {'id':4,'name':'半壁江山66演唱会','limit':400,'status':1,'address':'会展中心4号厅','start_time':'2017-09-2014:00:00','create_time':'2017-08-2014:00:00'}, {'id':5,'name':'金融P222222P上线','limit':500,'status':1,'address':'会展中心5号厅','start_time':'2017-09-2014:00:00','create_time':'2017-08-2014:00:00'}, {'id':6,'name':'未命名0000发布会','limit':600,'status':1,'address':'会展中心6号厅','start_time':'2017-09-2014:00:00','create_time':'2017-08-2014:00:00'}, ], }
插入语句实现:
1.获取某个表的所有待插入数据
fortablename,dataindatas.items(): fordindata: self.insert_datatable(tablename,d) self.close_dataConnetion()
2.每个表的数据,逐条循环插入到该表中
definsert_datatable(self,tablename,table_data): keys={} forkeyintable_data: #从数据字段中取出列名,列名用反单引号括起来;--解决列名与mysql关键字冲突 keys[key]="`"+str(key)+"`" table_data[key]="'"+str(table_data[key])+"'" key=','.join(keys.values()) value=','.join(table_data.values()) sql="INSERTINTO"+tablename+"("+key+")VALUES("+value+");" withself.connection.cursor()ascursor: cursor.execute('SETFOREIGN_KEY_CHECKS=0;')#取消外键约束 cursor.execute(sql) self.connection.commit()
补充拓展:python数据库%冲突问题解决
在使用python后台调用MySQL数据库的时候会有「%」的关键字冲突问题,比如用Python后端读取MySQL中记录的逻辑,在impala端执行,其中涉及到模糊匹配的「%」会报错
解决:SQL逻辑中的单个「%」换为「%%」即可,不错的trip。
以上这篇pythonmysql字段与关键字冲突的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。