2012-05-17 64 views
3

SQLiteDatabase的插入方法的第二個參數是"nullColumnHack"。這是指什麼。應該將什麼值傳遞給這個參數。SQLiteDatabase的插入方法

由於

+0

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html全部解釋 –

+0

請提供更多信息。 –

+2

http://stackoverflow.com/questions/2662927/android-sqlite-nullcolumnhack-parameter-in-insert-replace-methods –

回答

-1

簡要說明..

nullColumnHack

可選的;可能爲空。 SQL不允許在沒有命名至少一個列名的情況下插入完全空行。如果提供的值爲空,則不會知道列名稱,也不能插入空行。如果未設置爲null,則在您的值爲空的情況下,nullColumnHack參數提供可空列名的名稱以顯式插入NULL。

+3

這與文檔中給出的內容相同。 –

+1

我認爲有人點擊了錯誤的按鈕。 – poring91

4

假設您有一個名爲foo的表,其中所有列都允許使用NULL值或具有缺省值。

在一些SQL實現,這將是有效SQL

`INSERT INTO `foo; 

這不是在SQLite有效。你必須有至少指定一個列:

INSERT INTO foo (somecol) VALUES (NULL); 

因此,在情況下你傳遞一個空ContentValuesinsert(),Android和SQLite需要一些列安全地分配給NULL。如果您有多個可供選擇的列,請通過您選擇的選擇機制選擇一個:擲骰子,Magic 8-Ball(TM),投幣翻轉,隔間配合翻轉等。

就我個人而言, d've只是通過一個空的ContentValuesinsert()非法,但他們沒有問我... :-)

禮貌commonsware。

+0

你完全複製這個答案http://stackoverflow.com/a/2663620/1968030 –

+0

這就是爲什麼我已經在最後一行給Commonsware的信貸 –

+0

即使你給作者的功勞,恕我直言stackoverflow旨在複製答案。這就是爲什麼有一個重複的標誌。 – Console

0

nullColumnHack是已知的,並且不能插入空行。如果未設置爲null,則在您的值爲空的情況下,nullColumnHack參數提供可空列名的名稱以顯式插入NULL。