【问题标题】:Creating mysql table from dynamic list python从动态列表python创建mysql表
【发布时间】:2016-05-10 23:48:44
【问题描述】:

使用动态列表创建表格时遇到问题。如图所示,我在 Exit 旁边不断收到错误消息:

Traceback(最近一次调用最后一次):文件“pp.py”,第 54 行,在 c.execute(createsqltable) 文件“/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py”,第 174 行,在 执行 self.errorhandler(self, exc, value) 文件“/usr/lib/python2.7/dist-packages/MySQLdb/connections.py”,第 36 行,在 默认错误处理程序 引发错误类,错误值 _mysql_exceptions.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MySQL 服务器对应的手册 在 'Exit VARCHAR(250),caseid 附近使用正确语法的版本 VARCHAR(250))' 在第 1 行") 这是代码:

lst =['Offset', 'Name', 'PID', 'PPID', 'Thds', 'Hnds', 'Sess', 'Wow64', 'Start', 'Exit', 'caseid']
table_name = "test"
createsqltable = """CREATE TABLE IF NOT EXISTS """ + table_name + " (" + " VARCHAR(250),".join(lst) + " VARCHAR(250))"
    #print createsqltable
c.execute(createsqltable)
conn.commit()

【问题讨论】:

    标签: python mysql


    【解决方案1】:

    由于exit是sql的关键字,所以必须先用``转义。

    lst =['Offset', 'Name', 'PID', 'PPID', 'Thds', 'Hnds', 'Sess', 'Wow64', 'Start', '`Exit`', 'caseid']
    table_name = "test"
    createsqltable = """CREATE TABLE IF NOT EXISTS """ + table_name + " (" + " VARCHAR(250),".join(lst) + " VARCHAR(250))"
        #print createsqltable
    c.execute(createsqltable)
    conn.commit()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多