[英]How to insert a unique ID into each SQLite row?
我有以下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
定义为自动增量列 :
create table entries (id integer primary key autoincrement, data)
正如MichaelDorner指出的那样, SQLite文档说integer primary key
做同样的事情并且速度稍快。 该类型的列是rowid
的别名,其行为类似于自动增量列 。
create table entries (id integer primary key, data)
这种行为是隐含的,可能会让缺乏经验的SQLite开发人员措手不及。
这是我使用的语法。
id INTEGER PRIMARY KEY AUTOINCREMENT,
只是不提供自动增量列的数据
tx.executeSql('INSERT INTO ENTRIES (id, data) VALUES (NULL, "First row")');
甚至更简单
tx.executeSql('INSERT INTO ENTRIES (data) VALUES ("First row")');
autoincrement
是你的朋友伙伴。
CREATE TABLE IF NOT EXISTS ENTRIES (id integer primary key autoincrement, data);
INSERT INTO ENTRIES (data) VALUES ("First row");
INSERT INTO ENTRIES (data) VALUES ("Second row");
接着:
> SELECT * FROM ENTRIES;
1|First row
2|Second row
对于INSERT,更好地为相应的自动增量值的问号占位符提供“空”值。
tx.executeSql('INSERT INTO ENTRIES (id, data) VALUES (?, ?)', [null, "First row"]);
这对我很有用
c.execute('INSERT INTO WEBSITES (url) VALUES (?)', [url])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.