Android SQLite: nullColumnHack-Parameter in Einfüge-/Ersetzungsmethoden

Lesezeit: 1 Minute

Benutzer-Avatar
Sack

Das Android SDK verfügt über einige praktische Methoden zum Bearbeiten von Daten mit SQLite. Allerdings sowohl die Einfügung und ersetzen Methoden verwenden einige nullColumnHack Parameter, dessen Verwendung ich nicht verstehe.

Die Dokumentation erklärt es wie folgt, aber was ist, wenn eine Tabelle mehrere Spalten hat, die dies zulassen NULL? Ich verstehe es wirklich nicht :/

SQL erlaubt nicht das Einfügen einer komplett leeren Zeile, also wenn initialValues ​​leer ist, diese Spalte [/row for replace] wird explizit zugewiesen a NULL Wert.

Nehmen wir an, Sie haben eine Tabelle mit dem Namen foo wo alle Spalten entweder erlauben NULL Werte oder Voreinstellungen haben.

In einigen SQL-Implementierungen wäre dies gültiges SQL:

INSERT INTO foo;

Das ist in SQLite nicht gültig. Sie müssen mindestens eine Spalte angegeben haben:

INSERT INTO foo (somecol) VALUES (NULL);

Daher für den Fall, dass Sie ein Leerzeichen übergeben ContentValues zu insert()Android und SQLite benötigen eine Spalte, die sicher zugewiesen werden kann NULL zu. Wenn Sie mehrere solcher Spalten zur Auswahl haben, wählen Sie eine über den Auswahlmechanismus Ihrer Wahl aus: Würfelwurf, Magic 8-Ball(TM), Münzwurf, Würfelwurf usw.

Ich persönlich hätte es einfach illegal gemacht, an einer Leerstelle vorbeizufahren ContentValues zu insert()aber sie haben mich nicht gefragt… 🙂

1311170cookie-checkAndroid SQLite: nullColumnHack-Parameter in Einfüge-/Ersetzungsmethoden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy