OperationalError:near":1":SQLite

时间:2017-11-29 06:58:02

标签: python sql sqlite

我有这个错误。

我执行join和union后,我的表列名称如下:

['A','B','C','B:1','D','B:2','E']

为了删除/重命名Table列,我执行了这个查询:

query = '''
        CREATE TABLE New_Table
        ['A','B_a','C','B_b','D','B_c','E']
        '''
query1 = '''
        INSERT INTO New_Table
        ('A','B_a','C','B_b','D','B_c','E')
        SELECT A, B, C, B:1, D, B:2, E
        FROM Table
        '''

import sqlite3
conn = sqlite3.connect('dbase_Sqlite')  # create or open db file
curs = conn.cursor()
curs.execute(query)
conn.commit()
curs.execute(query1)
conn.commit()

我收到了这个错误:

OperationalError: near ":1": syntax error

显然&#34;:1&#34;和&#34;:2&#34;由sqlite JOIN或UNION添加。我应该如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

我在这里找到了答案,通过给出&#34;&#34;来逃避列名称。到查询中的所有列名称。它有效。

query1 = '''
        INSERT INTO New_Table
            ('A','B_a','C','B_b','D','B_c','E')
        SELECT "A", "B", "C", "B:1", "D", "B:2", "E"
        FROM Table
        '''

参考:https://blog.christosoft.de/2012/10/sqlite-escaping-table-acolumn-names/