Что не так с этим запросом? - PullRequest
2 голосов
/ 07 июля 2011
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 - это целое число

Ответы [ 2 ]

6 голосов
/ 07 июля 2011

INT(64) недостаточно близко; это должно быть INTEGER.

3 голосов
/ 07 июля 2011

Обозначение SQLite INTEGER PRIMARY KEY. Ссылка на документы:

Если вы объявите столбец таблицы как INTEGER PRIMARY KEY , то всякий раз, когда вы вставляете NULL в этот столбец таблицыNULL автоматически преобразуется в целое число, которое на единицу больше, чем наибольшее значение этого столбца над всеми остальными строками таблицы, или 1, если таблица пуста.Или, если используется самый большой из существующих целочисленных ключей 9223372036854775807, то неиспользуемое значение ключа выбирается случайным образом.[...]

CREATE TABLE t1(
  a INTEGER PRIMARY KEY,
  b INTEGER
);
...