German Escallon <germ...@adtecinc.com> wrote:
> Hello all,
> 
> I'm facing a challenge, and I hope someone can give me a hand.
> 
> I tried something along the lines of:
> 
> create table X(xid integer primary key);
> create table Y(yid integer primary key, y_xid references X(xid) );
> create table Z(zid integer primary key, z_xid references X(xid) );
> 
> create table Y_Z
>   (
>   yzid integer primary key autoincrement,
>   yz_yid references Y(yid),  /*references primary key in y */
>   yz_zid references Z(zid),  /* references primary key in z */
>   CHECK
>      (
>         (select y_xid from Y where yid= yz_yid ) =  (select z_xid from
> Z where zid= yz_zid )
>      )
>   );
> 
> Jusding by this diagram
> <http://www.sqlite.org/syntaxdiagrams.html#table-constraint> I thought
> my last create table statement was syntactically correct.  But I got
> the following message:
> "Error: subqueries prohibited in CHECK constraints"..  Uhmm..  Bummer.
> 
> Is there any alternative you can suggest?  Thank you in advance.

You could have insert and update triggers on Y_Z to enforce the constraint.
-- 
With best wishes,
    Igor Tandetnik

With sufficient thrust, pigs fly just fine. However, this is not necessarily a 
good idea. It is hard to be sure where they are going to land, and it could be 
dangerous sitting under them as they fly overhead. -- RFC 1925


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

Reply via email to