在sqlite中有自动增量吗?

前端之家收集整理的这篇文章主要介绍了在sqlite中有自动增量吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在sqlite3中创建一个自动递增主键的表。我不知道这是否真的可能,但我希望只需指定其他领域。例如:
CREATE TABLE people (id integer primary key auto increment,first_name varchar(20),last_name varchar(20));

然后,当我添加一个值,我希望只需要做:

INSERT INTO people
VALUES ("John","Smith");

这是可能吗?

我在Windows 7下运行sqlite3在cygwin下。

你得到一个免费的,称为ROWID。这是在每个sqlite表,无论你是否要求。

如果包括类型为INTEGER PRIMARY KEY的列,则该列指向自动ROWID列(是其别名)。

ROWID(通过任何名称调用它)在每次插入行时都会被赋予一个值,正如您所期望的。如果在INSERT上显式指定非NULL值,它将获取指定的值,而不是自动递增。如果在INSERT上显式指定NULL值,它将获得下一个自动递增值。

此外,您应该尽量避免:

INSERT INTO people VALUES ("John","Smith");

并使用

INSERT INTO people (first_name,last_name) VALUES ("John","Smith");

代替。第一个版本非常脆弱 – 如果您在表定义中添加,移动或删除列,INSERT将失败或生成不正确的数据(值在错误的列中)。

猜你在找的Sqlite相关文章