2016-11-23 4 views
0

これまで同様の質問がありましたが、このタイプの質問をする初心者にはクエリーがJavaに埋め込まれている可能性があります。'rowid'列は自動インクリメントされていません

私は 'ROWID'列が自動ポピュレート/自動インクリメントではないと思います。表には、次のように声明、およびエラーコードを挿入:私のDBブラウザで

CREATE TABLE T (rowid INTEGER PRIMARY KEY, c1 REAL, c2 REAL); 

insert into T values (8,9); 

エラーコードは次のとおりです。

table T has 3 columns but 2 values were supplied: insert into T values (1,2); 

私はこのエラーを生成する非常に似ていないが、他のコードを持っています。どんな助けでも大歓迎です!ありがとう!!

答えて

0

これはSQLiteの問題ではありません。DBブラウザでは、3つの列すべての値が常に存在する必要があります。

この問題を回避するには、rowidの列にNULLを挿入する方法があります。これにより、SQLiteに次の論理値を割り当てさせる必要があります。

INSERT INTO T values (NULL, 1, 2); 
+0

AUTOINCREMENTを使用してもエラーコードは変更されません。また、sqliteのマニュアルによれば、PRIMARY KEYを自動的にAUTOINCREMENTする必要があります。http://sqlite.org/autoinc.html –

+1

@HanleySoilsmith私はこれがDBツールの問題だと思います。 'rowid'に' NULL'を挿入してみてください。 –

+0

私はこれも問題だと思いますが、私はPythonでクエリを実行すると、私のpythonシェルは同じエラーを返します... sqlite3の更新を調べて、それが動作するかどうかを調べます。今のところ、nullを使用すると動作します。助けていただきありがとうございます<3 –

関連する問題