On 02/07/2011, at 4:54 AM, KeithB wrote: > Is there any way to perform the equivalent of an INSERT OR UPDATE statement? > > I have something like this: > > CREATE TABLE t1 (id INTEGER PRIMARY KEY, value INTEGER); > CREATE TABLE t2 (parent INTEGER REFERENCES t1 ON DELETE CASCADE, child > INTEGER REFERENCES t1); > INSERT INTO t1 VALUES(1,100); > INSERT INTO t1 VALUES(2,200); > INSERT INTO t2 VALUES(1,2); > > Later on, I want to change the value of t1(1,100) to (1,101) or insert > a new row, I don't know which.
Do this: begin immediate; update t1 set value = 101 where id = 1; insert or ignore into t1 (id, value) values (1, 101); commit; The update will only happen if the id already exists. The insert will only happen if the id doesn't already exist. Tom Brodhurst-Hill BareFeetWare -- iPhone/iPad/iPod and Mac software development, specialising in databases develo...@barefeetware.com -- Comparison of SQLite GUI tools: http://www.barefeetware.com/sqlite/compare/?ml _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users