我正在使用一個簡單的數據庫。它有三列。 _id(整數主鍵自動增量),jobnumber(文本唯一不爲空)和jobpart(文本不爲空)。android SQLite不尊重「不爲空」約束
我正在使用一個帶有兩個EditText小部件的對話框來獲取輸入,並在按鈕按下時將它添加到數據庫中。
當我輸入一個jobnumber但保留jobpart爲空時,我認爲該記錄不會被添加。但是,它正在被添加,我得到一個空白的工作部分。我正在使用「插入」。看,我想也許我需要使用「insertWithOnConflict」來代替,但這似乎沒有什麼差別,同樣的事情發生了。
我的下一個想法也許是一個空字符串沒有算作一個空值,所以我嘗試了以下內容:
if (jobpart == "") {
jobpart1 = null;
}else{
jobpart1 = jobpart;
}
同樣的事情發生,數據庫甚至沒有打嗝,把一個空的插槽中。
所以我開始瀏覽SQL文檔。我想知道是否需要將數據庫設置爲嚴格模式,因爲可能正在使用隱式默認值?雖然我發現在與服務器相關的部分中,所以我不確定它甚至適用於此,如果它確實如此,我將如何以及何時執行此操作。 (在數據庫創建?在數據庫打開?)。
任何指針讚賞。
你可以發佈你正在使用做插入的代碼? – tomtheguvnor