Предположим, у вас есть таблица с именем foo
, где все столбцы либо допускают значения NULL
, либо имеют значения по умолчанию.
В некоторых реализациях SQL это будет действительный SQL:
INSERT INTO foo;
Это недопустимо в SQLite. Вы должны указать хотя бы один столбец:
INSERT INTO foo (somecol) VALUES (NULL);
Следовательно, в случае, когда вы передаете пустой ContentValues
в insert()
, Android и SQLite нужен некоторый столбец, который можно безопасно присвоить NULL
. Если у вас есть несколько таких столбцов на выбор, выберите один из них с помощью механизма выбора по вашему выбору: бросок игральных костей, Magic 8-Ball (TM), подбрасывание монет, подбрасывание кабины и т.д.
Лично я бы сделал незаконным передачу пустого ContentValues
на insert()
, но они не спросили меня ...: -)