我在AUTOINCREMENT
附近收到语法错误。这个错误的原因是什么?
CREATE TABLE person (
id INTEGER NOT NULL AUTOINCREMENT,
name TEXT NOT NULL
);
CREATE TABLE department (
id INTEGER NOT NULL AUTOINCREMENT,
name TEXT NOT NULL,
FOREIGN KEY (leader) REFERENCES person(id)
);
答案 0 :(得分:35)
According to SQLite FAQ您必须声明INTEGER PRIMARY KEY
或INTEGER PRIMARY KEY AUTOINCREMENT
列才能实现这一目标。
答案 1 :(得分:4)
在SQLite中,如果要将列指定为主键,则无需指定AUTOINCREMENT ...
答案 2 :(得分:1)
SQLite AUTOINCREMENT:您应该避免使用它
只要在不指定WITHOUT ROWID选项的情况下创建表,就会得到一个称为rowid的隐式自动增量列。
rowid列存储64位带符号整数,用于唯一标识表中的行。