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。或者,如果最大的现有整数密钥 9223372036854775807 正在使用中,则随机选择未使用的密钥值。
[...]

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