Das ist wahrscheinlich eine dumme Frage, aber ich konnte die Antwort noch nicht finden.
Ich möchte eine TEXT-Spalte mit eigenen eindeutigen Namen als Primärschlüssel in einer Tabelle verwenden. Der kleine Codeabschnitt, um dies zu definieren, sieht in meinem Projekt ungefähr so aus:
%Vor%Funktioniert das so, wie ich es vorschlage? Oder muss ich vielleicht "AS ID" verwenden? Ich sehe immer nur einzelne Tabellen mit _ID als autoinkrementierende Ganzzahl in. Auch das sollte ein Fremdschlüssel in einer anderen Tabelle sein, aber da ich meine Datenbank entworfen habe, habe ich mehr Informationen gelesen und ich bin mir nicht sicher, ob das wirklich wichtig ist Android & amp; SQLITE?
Danke an die Poster unten, aber ich bin ein bisschen langsam und nicht sicher, ob ich die Informationen richtig anwende, könntest du das überprüfen?
Wenn ich also eine create-Anweisung habe:
%Vor%Dann haben: db.execSQL ("SELECT-ID, ID AS CAT_ITEM_ID")
Kann ich sie dann austauschbar verwenden? Bin ich überhaupt irgendwo in der Nähe? haha Entschuldigung, ich versuche es!
Sie können Tabellen erstellen und definieren, wie Sie möchten, aber wenn Sie die Tabelle über einen CursorAdapter verwenden müssen, der ohne eine Optimierung nicht funktioniert.
%Vor% Sie müssen immer select col1 as _id ...
ausgeben, um zu arbeiten.
Daher wird empfohlen, _id
im Tabellenschema zu verwenden, und wenn Sie einen anderen Namen verwenden möchten, können Sie dies tun. select _id, _id as customname ...
, also wähle die Spalte _id zweimal mit verschiedenen Namen.
Sie können alles, was Sie wollen, als Primärschlüssel verwenden.
Wenn Sie jedoch zum Beispiel einen CursorAdapter verwenden möchten, der automatisch Elemente aus einer Cursor-Abfrage anzeigt, benötigen Sie eine ganzzahlige Spalte namens _ID, da diese hier verwendet wird.
Aber wenn das nicht etwas ist, das Sie mit Ihrem Tisch verwenden möchten, können Sie tun, was Sie wollen!