2017-06-02 45 views
0

我有一個sqlite表模式: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指數爲rideIdts還是我得到一個以上的次數爲rideIdts給定的組合。

+1

你確定一個單一的'runQuery()'調用可以執行多個語句? –

+0

runQuery()只激動一個語句。在創建表'runQuery的回調函數中移動索引創建並按預期工作 –

回答

0

你想要做什麼正確的語法是:

CREATE UNIQUE INDEX unq_event_id ON cell(rideId, ts) 

你應該檢查你的代碼的錯誤返回狀態。

鑑於你的代碼的性質,我猜你想在events表的索引:

CREATE UNIQUE INDEX unq_events_rideid_ts ON events(rideId, ts); 
+0

Ohh ..感謝您指出這一點。但碰巧runQuery只執行單個語句 –

相關問題