update - android studio sqlite



Android SQLite:插入/替換方法中的nullColumnHack參數 (1)

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

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

INSERT INTO foo;

這在SQLite中無效。 您必須至少指定一列:

INSERT INTO foo (somecol) VALUES (NULL);

因此,在您將一個空的ContentValues傳遞給insert() ,Android和SQLite需要一些可安全分配NULL列。 如果您有多個可供選擇的列,請通過您選擇的選擇機制選擇一個:擲骰子,Magic 8-Ball(TM),投幣式翻轉,臥室伴侶翻轉等。

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

Android SDK提供了一些用SQLite處理數據的便利方法。 然而, insertreplace方法都使用了一些我不明白的用法nullColumnHack參數。

該文檔使用以下內容解釋它,但是如果一個表有多個允許NULL列,該怎麼辦? 我真的不明白:/

SQL不允許插入一個完全空行,所以如果initialValues為空,這個列[ / row for replace ]將明確地被分配一個NULL值。





sqlite