2
CREATE TABLE IF NOT EXISTS fw_users (id INT(64) NOT NULL PRIMARY KEY AUTOINCREMENT, auth CHAR(64) UNIQUE, money INT(32) DEFAULT '0', unlocks VARCHAR(8000))

エラーは表示されませんが、SQLiteはエラーをスローします。

Query failed! AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY

それは意味がありません、idは整数です

4

2 に答える 2

6

INT(64)十分に近づいていません。でなければなりませINTEGER

于 2011-07-06T21:09:37.343 に答える
3

SQLite 表記はINTEGER PRIMARY KEY. ドキュメント参照:

テーブルの列をINTEGER PRIMARY KEYとして宣言すると、テーブルのその列に NULL を挿入するたびに、NULL は自動的に整数に変換されます。この整数は、他のすべての行よりもその列の最大値よりも 1 大きい値になります。テーブル内、またはテーブルが空の場合は 1。または、既存の最大の整数キー 9223372036854775807 が使用されている場合は、未使用のキー値がランダムに選択されます。
[...]

CREATE TABLE t1(
  a INTEGER PRIMARY KEY,
  b INTEGER
);
于 2011-07-06T21:13:20.390 に答える