2013-04-11 65 views
0

我有一種方法,運行從外部soruces而不是從android設備獲得的INSERT SQL語句。傳入的統計信息可能會導致重複的記錄,並且我希望Android設備在引起重複時忽略sql語句。該方法是:Android SQLite捕獲錯誤使用execSQL

ourDatabase.execSQL(sql) 

表其插入數據到具有下列柱防止重複

KEY_CONCATA + " TEXT PRIMARY KEY , " + 

如果這是唯一的,而不是主鍵?

系統此刻認識到它導致了重複並結束了程序,我希望它能夠捕捉到錯誤,並且在它重複時停止插入到數據庫中。

謝謝!

+0

你可以有一個'TEXT PRIMARY KEY'和主鍵默認是獨一無二的......是什麼錯誤? – Sam 2013-04-11 18:52:14

+0

列concata是不唯一的(代碼19) – user1876202 2013-04-11 18:53:31

回答

1

聲明KEY_CONCATA TEXT NOT NULL UNIQUE當插入使用insertWithOnConflictSQLiteDatabase.CONFLICT_IGNORE標誌

+0

我不知道這是否會工作,因爲傳入是一個SQL語句,例如INSERT INTO database_table WHERE .....即時猜測這樣的輸入將無法使用insertWithOnConflict? – user1876202 2013-04-11 18:58:23

+0

嘗試KEY_CONCATA TEXT NOT NULL唯一的衝突IGNORE – 2013-04-11 19:00:02

+1

或'KEY_CONCATA +「TEXT PRIMARY KEY ON CONFIGIC IGNORE,」+' – Sam 2013-04-11 19:02:01