http://www.sqlite.org/lang_conflict.htmlから
ABORT 該当する制約違反が発生すると、ABORT 解決アルゴリズムは、現在の SQL ステートメントを SQLITE_CONSTRAIT エラーで中止し、現在の SQL ステートメントによって行われた変更を取り消します。ただし、同じトランザクション内の以前の SQL ステートメントによって引き起こされた変更は保持され、トランザクションはアクティブなままです。これはデフォルトの動作であり、SQL 標準で禁止されている動作です。
FAIL 該当する制約違反が発生すると、FAIL 解決アルゴリズムは現在の SQL ステートメントを SQLITE_CONSTRAINT エラーで中止します。ただし、FAIL 解決では、失敗した SQL ステートメントの以前の変更が取り消されたり、トランザクションが終了したりすることはありません。たとえば、UPDATE ステートメントが更新を試行する 100 行目で制約違反を検出した場合、最初の 99 行の変更は保持されますが、100 行以降の変更は発生しません。
どちらも、制約違反の原因となったステートメントの前に行われた変更を保持し、トランザクションを終了しません。したがって、唯一の違いは、FAIL 解決ではそれ以上変更を加えることができないのに対し、ABORT では競合するステートメントのみをバックアップすることだけだと思います。私は正しかったですか?