我有以下SQLite代码.如何将自动生成的唯一ID插入每行?

    tx.executeSql('DROP TABLE IF EXISTS ENTRIES');
    tx.executeSql('CREATE TABLE IF NOT EXISTS ENTRIES (id unique, data)');

    tx.executeSql('INSERT INTO ENTRIES (id, data) VALUES (1, "First row")');
    tx.executeSql('INSERT INTO ENTRIES (id, data) VALUES (2, "Second row")');

推荐答案

您可以将id定义为auto increment column:

create table entries (id integer primary key autoincrement, data)

正如迈克尔·多纳(MichaelDorner)指出的那样,SQLite documentation表示,Ainteger primary key做了同样的事情,而且速度略快.该类型的列是rowid的别名,其中behaves like an autoincrement column.

create table entries (id integer primary key, data)

此行为是隐式的,可能会让没有经验的SQLite开发人员措手不及.

Database相关问答推荐

使用存储过程从子表中删除数据

MongoDB根据嵌套文档中的值匹配数组

我如何计算mongo中的多个字段?

H2 - 如何截断(truncate)所有表?

在 PostgreSQL 的数组列中查找字符串

我应该为 Realm 中的每个实体定义主键吗?

如何最好地在 MS SQL Server 中复制整个数据库?

使 H2 将引用的名称和未引用的名称视为相同

Oracle 和 SQL Server 中的 NVARCHAR 之间的区别?

某些网站不允许在密码中使用句点是否有原因?

怎样有效存储 7.300.000.000 行?

在 PostgreSQL 上获取数据库创建日期

在 SQL Server 中存储属性的最佳模式是什么?

将图像文件存储在 Mongo 数据库中,这是个好主意吗?

处理hibernate entities上的数据库视图的优雅方法?

在 SQL Server 中,如何以类似于 Oracle 的SELECT FOR UPDATE WAIT的方式锁定单行?

如何使用 django 判断 postgresql 数据库中是否存在某些内容?

如何将纬度/经度对转换为 PostGIS 地理类型?

我将如何为读写操作实现单独的数据库?

数据库事务是否防止竞争条件?