前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python mysql 字段与关键字冲突的解决方式

python mysql 字段与关键字冲突的解决方式

作者头像
砸漏
发布2020-11-05 14:36:31
1.2K0
发布2020-11-05 14:36:31
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

解决方法:python中把字段名称用反引号(`),也就是ESC下面~那个按钮。

示例:

数据字段设计如下截图所示

待插入数据:

代码语言:javascript
复制
datas = {
  'sign_event':[
    {'id': 1, 'name': '华为mate9发布会' , 'limit': 100, 'status': 1, 'address': '会展中心1号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 2, 'name': '华为P1000发布会' , 'limit': 200, 'status': 1, 'address': '会展中心2号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 3, 'name': 'IPHONE888发布会' , 'limit': 300, 'status': 1, 'address': '会展中心3号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 4, 'name': '半壁江山66演唱会' , 'limit': 400, 'status': 1, 'address': '会展中心4号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 5, 'name': '金融P222222P上线' , 'limit': 500, 'status': 1, 'address': '会展中心5号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
    {'id': 6, 'name': '未命名0000发布会' , 'limit': 600, 'status': 1, 'address': '会展中心6号厅', 'start_time': '2017-09-20 14:00:00','create_time':'2017-08-20 14:00:00'},
  ],
}

插入语句实现:

1.获取某个表的所有待插入数据

代码语言:javascript
复制
 for tablename,data in datas.items():
     for d in data:
       self.insert_datatable(tablename,d)
 self.close_dataConnetion()

2.每个表的数据,逐条循环插入到该表中

代码语言:javascript
复制
 def insert_datatable(self, tablename, table_data):
    keys = {}
    for key in table_data:
      # 从数据字段中取出列名,列名用反单引号括起来;--解决列名与mysql关键字冲突
      keys[key] = "`"+str(key)+"`"
      table_data[key] = "'"+str(table_data[key])+"'"
    key = ','.join(keys.values())
    value = ','.join(table_data.values())
 
    sql = "INSERT INTO " + tablename + " ( " + key + " ) VALUES ( " + value +" );"
    with self.connection.cursor() as cursor:
      cursor.execute('SET FOREIGN_KEY_CHECKS=0;') #取消外键约束
      cursor.execute(sql)
    self.connection.commit()

补充拓展:python 数据库 % 冲突问题解决

在使用python后台调用 MySQL数据库的时候会有 「%」的关键字冲突问题,比如 用Python后端读取 MySQL 中记录的逻辑,在 impala端执行,其中涉及到模糊匹配的 「%」会报错

解决:SQL逻辑中的单个「%」换为「%%」即可,不错的 trip。

以上这篇python mysql 字段与关键字冲突的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档