On Sun, 30 Oct 2005, Dan Kennedy wrote:

> When you execute this SQL: "delete from v_items where item='me'",
> SQLite essentially does:
>
> FOR EACH ROW IN "select <row> FROM v_items where item='me'" {
>
> Execute trigger program
>
> }

That makes perfext sense. Thnx.

Rgds,
Mark.

> --- Mark de Vries <[EMAIL PROTECTED]> wrote:
>
> > Hi,
> >
> > I guess my question is: are conditions in the where clause
> > of a instead of delte trigger ignored if the referenced
> > columns are not in the where clause of the orig delete?
> >
> > But perhaps an example of my 'problem':
> >
> > create table item (
> >     id integer primary key,
> >     name text,
> >     catid integer
> > );
> >
> > create table category (
> >     id integer primary key,
> >     name text
> > );
> >
> > create view v_items as
> >     select i.name as item,c.name as cat
> >     from item i,category c
> >     where i.catid=c.id;
> >
> > insert into category values (1,'good');
> > insert into category values (2,'bad');
> > insert into item values (1,'me',1);
> > insert into item values (2,'you',1);
> > insert into item values (3,'the rest',2);
> >
> > Now I want to be able to delete using the view so I
> >
> > create trigger del_v_items instead of delete on v_items
> > begin
> >     delete from item
> >     where name=old.item and
> >     catid=(select catid from category where name=old.cat);
> > end;
> >
> > Now I can "delete from v_items where item='me'" or "delete from v_items
> > where cat='good'". Both seem to work as I would like it to, but I don't
> > quite understand why. In both cases I don't specify a value for a column
> > that is used in the where clause inside the trigger. Assuming and using
> > 'NULL' would not work, so what does sqlite do? Just ignore those parts of
> > the where clause that it does not have all the values for?
> >
> > Thnx for your time & Regards,
> > Mark.
> >
> >
>
>
>
>
>
> __________________________________
> Yahoo! Mail - PC Magazine Editors' Choice 2005
> http://mail.yahoo.com
>


Regards,
Mark

Reply via email to