sev*_*ens 26 sql database sqlite
我有以下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")');
Run Code Online (Sandbox Code Playgroud)
And*_*mar 37
您可以定义id为自动增量列:
create table entries (id integer primary key autoincrement, data)
Run Code Online (Sandbox Code Playgroud)
正如MichaelDorner指出的那样,SQLite文档说一个integer primary key做同样的事情并且稍快一些.该类型的列是别名rowid,其行为类似于自动增量列.
create table entries (id integer primary key, data)
Run Code Online (Sandbox Code Playgroud)
这种行为是隐含的,可能会让缺乏经验的SQLite开发人员措手不及.
小智 17
这是我使用的语法.
id INTEGER PRIMARY KEY AUTOINCREMENT,
Run Code Online (Sandbox Code Playgroud)
只是不提供自动增量列的数据
tx.executeSql('INSERT INTO ENTRIES (id, data) VALUES (NULL, "First row")');
Run Code Online (Sandbox Code Playgroud)
甚至更简单
tx.executeSql('INSERT INTO ENTRIES (data) VALUES ("First row")');
Run Code Online (Sandbox Code Playgroud)