SQLite表中的自动增量

时间:2016-10-25 07:49:20

标签: sqlite auto-increment

我创建了一个表,让我们在SQLite中命名为CUSTOMERS

CREATE TABLE "CUSTOMERS" (
    "tel" INTEGER NOT NULL, 
    "customer" VARCHAR ,
);

当我从GUI看到表格时(我使用的是Firefox中的SQLite Manager),我注意到有一个额外的列rowid就像自动增量一样工作。我的问题是,在我不使用主键的表中,我应该指定一个列,如:

ROWID INTEGER PRIMARY KEY AUTOINCREMENT

如果我执行此查询PRAGMA table_info(CUSTOMERS);,我只会获得两列telcustomer

2 个答案:

答案 0 :(得分:1)

Sqlite通常会在评论SqLite : ROWID中链接@laato时自动添加rowid

可以删除,但不需要指定。因此无需将其添加到“创建表”。

隐藏的rowid允许删除目标位于单行,即bu 如果您使用ROWID作为特定外键,最好明确命名一列。然后,它将成为rowid的同义词。

答案 1 :(得分:0)

您可以看到here,因为它已在您的问题中发表了评论。

但是,如果您在这些选项之间选择何种选择,SQLite建议您不要使用AUTOINCREMENT属性,因为:

  

AUTOINCREMENT关键字会占用额外的CPU,内存,磁盘空间和   磁盘I / O开销,如果不是严格需要,应该避免。它是   通常不需要。

您可以阅读here了解更多信息。