我有这个错误。
我执行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>
答案 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/