I'm getting a "foreign key mismatch" error with the following code:

~~~
<create new database>
PRAGMA foreign_keys = ON;

CREATE TABLE IF NOT EXISTS JobPlans (Name UNIQUE);

CREATE TABLE IF NOT EXISTS Tasks (JobPlan_ID INTEGER NOT NULL REFERENCES 
JobPlans(RowID) ON DELETE CASCADE, UID UNIQUE NOT NULL);

INSERT INTO JobPlans(Name) VALUES ('234234');

# Following line generates the error:
INSERT INTO Tasks(JobPlan_ID,UID) VALUES (1,'ZZZ');
~~~

If I explicitly declare an alias for the RowID:

CREATE TABLE IF NOT EXISTS JobPlans (RowID INTEGER PRIMARY KEY, Name UNIQUE);

I don't get the error.  Is it not possible to reference the SQLite 
internal/default column for the RowID in a foreign key definition?  The online 
docs should be updated to reflect this.

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to