下面的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")');
5条答案
按热度按时间q3qa4bjr1#
您可以将
id
定义为auto increment column:正如MichaelDorner所指出的,SQLite documentation说
integer primary key
做的几乎是同样的事情,而且稍微快一点。该类型的列是ROWID
的别名,其行为类似于自动递增列,不同之处在于,如果没有AUTOINCREMENT
,则可以重用行的ID。换句话说,AUTOINCREMENT
的目的是防止重用以前删除的行中的ROWID。这种行为是隐式的,可能会让没有经验的SQLite开发人员措手不及。
lzfw57am2#
这是我使用的语法。
只是不为自动增量列提供数据
或者更简单
uelo1irk3#
autoincrement
是你的好友。然后:
5vf7fwbs4#
对于INSERT,最好为相应的自动增量值的问号占位符提供一个“null”值。
p8h8hvxi5#
这对我来说非常有效