2017-11-23 17 views
0

SQliteデータベースをINTEGER PRIMARY KEY AUTOINCREMENTで設定しようとしていますので、last_insert_rowidを使用できますが、試してみます。このスクリプトはデータベースにデータを入力します。関連のない別のプログラムは、時々、レーザーの行をプルできる必要があります。SQlite Autoincrementプライマリキーエラーの値が不十分です

sqlite3.OperationalError:テーブルPLCValues 28列を持っていますが、27個の値は、私はいくつかの構成が、運を試してみました

cur.execute("DROP TABLE IF EXISTS PLCValues") 
cur.execute("CREATE TABLE PLCValues(ID INTEGER PRIMARY KEY AUTOINCREMENT, [timestamp] timestamp, \ 
    x001 NUMERIC, x002 NUMERIC, x003 NUMERIC, x004 NUMERIC, x005 NUMERIC, x006 NUMERIC, x007 NUMERIC, x008 NUMERIC,\ 
    y001 NUMERIC, y002 NUMERIC, y003 NUMERIC, y004 NUMERIC, y005 NUMERIC, y006 NUMERIC,\ 
    x201 NUMERIC, x202 NUMERIC, x203 NUMERIC, x204 NUMERIC, x205 NUMERIC, x206 NUMERIC, x207 NUMERIC, x208 NUMERIC,\ 
    df1 REAL, df2 REAL, df3 REAL, df4 REAL)") 
. 
. 
. 
cur.execute("INSERT INTO PLCValues VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",\ 
      (datetime.now(), \ 
      regs1[0], regs1[1], regs1[2], regs1[3], regs1[4], regs1[5], regs1[6], regs1[7],\ 
      regs2[0], regs2[1], regs2[2], regs2[3], regs2[4], regs2[5],\ 
      regs3[0], regs3[1], regs3[2], regs3[3], regs3[4], regs3[5], regs3[6], regs3[7],\ 
      Temp/10, Humid/10, 0, 0)) 

を供給しました。

+0

を動作するようだが、sqliteのと同じ問題のように聞こえます。がんばろう! – Terminus

答えて

0

これは、1つは、Javaを使用しての代わりに、パイソンされているのではない、非常に正確な

 cur.execute("INSERT INTO PLCValues VALUES(null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",\ 
      (datetime.now(), \ 
      regs1[0], regs1[1], regs1[2], regs1[3], regs1[4], regs1[5], regs1[6], regs1[7],\ 
      regs2[0], regs2[1], regs2[2], regs2[3], regs2[4], regs2[5],\ 
      regs3[0], regs3[1], regs3[2], regs3[3], regs3[4], regs3[5], regs3[6], regs3[7],\ 
      Temp/10, Humid/10, 0, 0)) 
関連する問題