Howard Lowndes <[EMAIL PROTECTED]> wrote:
> I'm playing about with the following syntax:
>
> CREATE TABLE atable (
>         a_ref integer
>                 not null
>                 primary key autoincrement,
>         a_text text
> );
>
> CREATE TABLE btable (
>         b_ref integer
>                 not null
>                 primary key autoincrement,
>         b_text text,
>         a_ref integer
>                 not null
>                 default 0
>                 references atable (a_ref)
>                 on delete set default
>                 on update cascade
> );

Be aware that SQLite silently ignores REFERENCES clause (together with 
on delete, on update parts). You will have to create triggers to enforce 
these constraints.

> Have I misunderstood the syntax for the SQL REFERENCES statement, or
> is the following from 2003 (??) still applicable:
>
> "That's not a legal FOREIGN KEY clause; you have to specify what the
> foreign key references. SQLite parses, but does not enforce,
> syntactically-legal FOREIGN KEY specifications; there's a PRAGMA that
> will retrieve foreign-key information from table definitions, allowing
> you to enforce such constraints with application code."  which is in
> http://www.sqlite.org/cvstrac/wiki?p=UnsupportedSql

Still applicable.

Igor Tandetnik



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

Reply via email to