On 8/18/17, Wout Mertens <wout.mert...@gmail.com> wrote:
>
> So, bottom line, is there a way to insert or replace a row so that first
> the id constraint is observed (replacing a previous row with the same id),
> and then the k constraint is verified (failing to replace if k is already
> present in the table)?


CREATE TABLE demo(id INTEGER PRIMARY KEY, k TEXT, otherstuff ANY);
CREATE INDEX demo_k ON demo(k);
CREATE TRIGGER demo_trigger1 BEFORE INSERT ON demo BEGIN
  SELECT raise(ABORT,'uniqueness constraint failed on k')
   FROM demo WHERE k=new.k;
END;

The above will force uniqueness on k for INSERT statements.  You'll
want a second "BEFORE UPDATE" trigger to do similar enforcement for
UPDATEs if that is an issue for you.


-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to