SQLite:自动增量主键问题

时间:2011-12-15 12:11:15

标签: sql sqlite

我有以下SQLite查询:

CREATE TABLE Logs ( Id integer IDENTITY (1, 1) not null CONSTRAINT PKLogId PRIMARY KEY, ...
  1. IDENTITY (1, 1) - >这是什么意思?
  2. PKLogId这是什么?这似乎没有在任何地方定义
  3. 我希望Idinteger primary key成为autoincrement。我希望能够在我的查询中插入Logs表中省略Id列。我想要Id自动添加和递增。这可能吗?我怎么能这样做?
  4. 当我尝试在没有Id的情况下插入时,我得到了:

    Error while executing query: Logs.Id may not be NULL
    

3 个答案:

答案 0 :(得分:56)

我不确定你是否真的根据你的例子的语法使用SQLite。

如果您愿意,您可能会对SQLite FAQ #1: How do I create an AUTOINCREMENT field?感兴趣:

  

简答:一个声明为INTEGER PRIMARY KEY的列   自动增量。

答案 1 :(得分:11)

将其更改为:

CREATE TABLE Logs ( Id integer PRIMARY KEY,....

答案 2 :(得分:0)

如果您是,您可能对SQLite FAQ#1感兴趣:如何创建AUTOINCREMENT字段?:

简答:声明为INTEGER PRIMARY KEY的列将自动递增。

事实上这并不完全准确。一个整数主键确实会增加,但是如果表丢弃所有行,它会从头开始,重要的是如果你想要正确绑定所有相关记录以在整数字段上的主键声明后使用自动增量描述。