Android SQLite: ekleme / değiştirme yöntemlerinde nullColumnHack parametresi


96

Android SDK, verileri SQLite ile işlemek için bazı kolaylık yöntemlerine sahiptir. Ancak hem insert ve yerine yöntemler bazılarını kullanmak nullColumnHackanlamıyorum kullanım parametresi.

Dokümantasyon bunu şu şekilde açıklamaktadır, ancak bir tabloda izin veren birden çok sütun varsa NULL? Gerçekten anlamıyorum: /

SQL tamamen boş bir satır eklemeye izin vermez, bu nedenle initialValues ​​boşsa, bu sütuna [ / değiştirmek için satır ] açıkça bir NULLdeğer atanacaktır .

Yanıtlar:


196

Diyelim ki foo, tüm sütunların NULLdeğerlere izin verdiği veya varsayılanlara sahip olduğu bir tablonuz var.

Bazı SQL uygulamalarında bu geçerli SQL olacaktır:

INSERT INTO foo;

Bu SQLite'da geçerli değil. En az bir sütun belirtmelisiniz:

INSERT INTO foo (somecol) VALUES (NULL);

Dolayısıyla, boş bir geçiş durumunda ContentValuesiçin insert(), Android ve SQLite atamak güvenlidir bazı sütun ihtiyaç NULLiçin. Aralarından seçim yapabileceğiniz bu tür birkaç sütun varsa, seçim mekanizmasından birini seçin: zar atma, Magic 8-Ball (TM), yazı tura atma, hücre arkadaşı çevirme, vb.

Kişisel olarak, I'd've sadece boş geçmesine yasadışı yapılan ContentValuesiçin insert(), ama bana sormadı ... :-)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.