这个查询出了什么问题?

时间:2011-07-06 21:03:55

标签: sqlite create-table

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 个答案:

答案 0 :(得分:6)

INT(64)不够近; 必须INTEGER

答案 1 :(得分:3)

SQLite表示法是INTEGER PRIMARY KEYDocs reference:

  

如果将一个表的列声明为INTEGER PRIMARY KEY,那么无论何时向表的该列插入NULL,NULL都会自动转换为一个整数,该整数大于该值的最大值。表中所有其他行的列,如果表为空,则为1。或者,如果正在使用最大的现有整数键9223372036854775807,则随机选择未使用的键值。
  [...]

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