This is the line that create the violation:
sprintf(s, "insert into a values(%d, 'The name field for %d', %d)",
NROWS+i, i, NROWS+i+VIOLATION);
if VIOLATION is 0 then you are inserting a record with id = NROWS+i and aid =
NROWS+i. Since the referential constraint is that aid references id in the
same table, it is satisfied by the record itself, thus the constraint is not
violated.
---
The fact that there's a Highway to Hell but only a Stairway to Heaven says a
lot about anticipated traffic volume.
>-----Original Message-----
>From: sqlite-users [mailto:sqlite-users-
>[email protected]] On Behalf Of Dominique Devienne
>Sent: Thursday, 2 August, 2018 01:48
>To: General Discussion of SQLite Database
>Subject: Re: [sqlite] Violated failed foreign key constraint delays
>the rest of transaction ; Some foreign key violations don't trigger
>the error at all
>
>On Thu, Aug 2, 2018 at 9:35 AM Keith Medcalf <[email protected]>
>wrote:
>
>> You observe no violation when VIOLATION is 0 because there is no
>> referential integrity violation to report ...
>>
>
>Really Keith? Parent IDs are in range [0, NROWS)
>Child/FK IDs inserted are in range [NROWS, 2*NROWS)
>How's that not an FK violation? At least that's how I read the code.
>Am I
>reading wrong? --DD
>_______________________________________________
>sqlite-users mailing list
>[email protected]
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users