创建一个包含TEXT
列的表格,默认为NULL
public class DbHelper extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE ttt (k TEXT, v TEXT DEFAULT NULL)");
}
}
插入行,但未指定NULL
- 默认列
SQLiteDatabase db = dbHelper.getWritableDatabase();
values.put("k", "1");
db.insertWithOnConflict("ttt", null, values, SQLiteDatabase.CONFLICT_IGNORE);
然后执行SELECT * FROM ttt WHERE v IS NULL
(我使用Chrome开发者工具,通过Stetho连接到数据库)。结果是没有,因为刚插入的行中的k
突然不是NULL,但期望它应该为NULL。
如果我按手'插入行,执行INSERT OR IGNORE INTO ttt(k) VALUES ('2')
,然后重复SELECT * FROM ttt WHERE v IS NULL
,我会按预期获得第二列(k = 2
)。
有人可以证实这种行为吗?这是Android SDK中的错误吗?
P.S。已尝试添加
values.putNull("v");
但它没有帮助:(