我有一个sqlite
表架构:
function createTableEvents(){
runQuery(`
CREATE TABLE events(
devId INTEGER,
rideId BIGINT,
ts BIGINT,
lat DOUBLE,
lng DOUBLE,
alt FLOAT,
spd FLOAT,
brg FLOAT,
hepe FLOAT,
vepe FLOAT,
ang FLOAT,
temp FLOAT,
motion BOOLEAN,
ignition BOOLEAN,
mainPower BOOLEAN,
relayState BOOLEAN
);
CREATE INDEX event_id ON cell(rideId, ts), UNIQUE(rideId, ts);`,
function(result){
console.log('createTableEvents rows', result.rows.length);
}
);
}
我为UNIQUE
和rideId
指定了ts
索引,但对于rideId
和ts
的给定组合,我仍然获得了多个计数。< / p>
答案 0 :(得分:0)
您要执行的操作的正确语法是:
CREATE UNIQUE INDEX unq_event_id ON cell(rideId, ts)
您应该检查代码的错误返回状态。
考虑到代码的性质,我猜你想要events
表上的索引:
CREATE UNIQUE INDEX unq_events_rideid_ts ON events(rideId, ts);