¿Qué hace exactamente la restricción de clave foránea "NO ACTION" de SQLite y en qué se diferencia de "RESTRICT"?

losdocumentación dice:

La configuración de "NO ACCIÓN" significa solo eso: cuando se modifica o elimina una clave principal de la base de datos, no se realiza ninguna acción especial.

Mi primera interpretación de esta oración fue "si se modifica o elimina la clave principal, entonces esta modificación se realiza y no se realiza ninguna otra acción", por lo que no se preserva la integridad de la base de datos, lo que lleva a algunosConfusión. Pero mis pruebas demostraron que si intento eliminar una clave principal (si aún existe una clave secundaria), obtengo una excepción ("SQLiteConstraintException: código de error 19: error de restricción" - Estoy probando en Android 4.0.3 / SQLite 3.7.x), por lo que "NO ACCIÓN" parece comportarse como se espera.

¿Podría alguien explicar y quizás dar un ejemplo, qué hace exactamente "NO ACTION" y en qué se diferencia de "RESTRICT"?

Respuestas a la pregunta(1)

Su respuesta a la pregunta