wie können wir löschen foreign-key in sqlite?
Arbeite ich mit einer SQLite-Datenbank. Ich habe eine Tabelle enthalten, die die Primärschlüssel der 2 anderen Tabellen als Fremdschlüssel, die ich löschen möchte, einer von Ihnen. Hier ist der code für die Tabelle:
protected static final String Item_places=(" CREATE TABLE "
+ Item_place + "("
+ place_id + " INTEGER ,"
+ Item_id + " INTEGER ,"
+ "FOREIGN KEY("+place_id+ ") REFERENCES " + PlaceTable + "("+ PlaceID+ " ) ON DELETE CASCADE"
+ "FOREIGN KEY("+Item_id+ ") REFERENCES "+ contentTable+ "("+contentID+"));");
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benötigen Sie
ALTER TABLE DROP CONSTRAINT
Befehl aber SQLite unterstützt diese, siehe Wie kann ich ein DROP constraint aus einer sqlite (3.6.21) Tabelle? für einen workaround.Dies ist eine alte Frage, aber es ist am besten, um eine aktualisierte Antwort.
Da API 16 (Aka Android 4.1), ist es möglich, schalten Sie den FK-constraints mit
SQLiteDatabase#setForeignKeyConstraintsEnabled(boolean enabled)
.Als pro die docs:
Diese Arbeit zu machen, in Ihrem benutzerdefinierten
SQLiteOpenHelper
verwenden Sie den folgenden code: