Was genau bewirkt die SQLite-Fremdschlüsseleinschränkung "NO ACTION" und wie unterscheidet sie sich von "RESTRICT"?

DasDokumentation sagt:

Das Konfigurieren von "KEINE AKTION" bedeutet Folgendes: Wenn ein übergeordneter Schlüssel geändert oder aus der Datenbank gelöscht wird, werden keine besonderen Maßnahmen ergriffen.

Meine erste Interpretation dieses Satzes lautete: "Wenn der übergeordnete Schlüssel geändert oder gelöscht wird, erfolgt diese Änderung und es werden keine weiteren Maßnahmen ergriffen", wodurch die Datenbankintegrität nicht erhalten bleibt, was zu einigen führen kannVerwechslung. Meine Tests haben jedoch gezeigt, dass ich beim Versuch, einen übergeordneten Schlüssel zu löschen (sofern noch ein untergeordneter Schlüssel vorhanden ist), eine Ausnahme erhalte ("SQLiteConstraintException: Fehlercode 19: Einschränkung fehlgeschlagen" - ich teste unter Android 4.0.3 / SQLite 3.7.x), daher scheint sich "NO ACTION" wie erwartet zu verhalten.

Könnte jemand bitte erklären und vielleicht ein Beispiel geben, was genau "NO ACTION" macht und wie es sich von "RESTRICT" unterscheidet.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage