[英]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.