2017-11-29 113 views
0

このエラーがあります。私が参加し、労働組合を行った後OperationalError:near ":1":SQLiteの構文エラー

私の表の列名に従っているよう:

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

表の列の名前を変更/ドロップするためには、私はこのクエリを実行:

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 

は明らか "1" と "2" は、SQLiteので追加されたが、JOINまたはUNION早く私はそれをどのように扱うべきですか?

+0

私はタグ[mysqlのタグ]を削除しました。 –

+0

万が一、ホスト言語[tag:python]はありますか? –

+0

私はpython3を使用しています、sqlite3.connectを使用しています –

答えて

0

ここでは、クエリのすべての列名に ""を付けて列名をエスケープして答えを見つけました。できます。

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 
     ''' 

参考:この質問は、それらについてではないとして:と[postgresqlのタグ]:https://blog.christosoft.de/2012/10/sqlite-escaping-table-acolumn-names/

関連する問題