The example below is s subset of my ical storage database which has 
problems with foreign keys. Although I tried a lot I couldn't figure out 
why the foreign key doesn't work. I took the example from the 
documentation and compared to my two tables, there is no major 
difference or I don't see the mistake. The delete statement in the last 
line doesn't work. I also tried the lates sqlite version but the error 
is the same. I always get "Error: near line 44: FOREIGN KEY constraint 
failed". Any help is appreciated.




PRAGMA foreign_keys=1;

BEGIN TRANSACTION;

CREATE TABLE artist(
   artistid    INTEGER PRIMARY KEY,
   artistname  VARCHAR
);

CREATE TABLE track(
   trackid     INTEGER PRIMARY KEY,
   trackname   VARCHAR,
   trackartist INTEGER REFERENCES artist(artistid) ON UPDATE CASCADE ON 
DELETE CASCADE
);


END TRANSACTION;


INSERT INTO artist(artistname) VALUES('Testartist');
INSERT INTO track(trackname,trackartist) 
VALUES('Testsong',last_insert_rowid());

DELETE FROM artist;

BEGIN TRANSACTION;

CREATE TABLE ical(
     id INTEGER PRIMARY KEY,
     oid VARCHAR,
     description VARCHAR
);

CREATE TABLE icalentry(
     id INTEGER PRIMARY KEY,
     calendar INTEGER REFERENCES ical(id) ON UPDATE CASCADE ON DELETE 
CASCADE,
     uuid VARCHAR
);

END TRANSACTION;

INSERT INTO ical(oid,description) VALUES('123','');
INSERT INTO icalentry(calendar,uuid) VALUES(last_insert_rowid(),'abcd');

DELETE FROM ical;

Reply via email to