On Wed, Apr 7, 2010 at 4:24 PM, Pavel Ivanov <[email protected]> wrote: >> I get a "Error: constraint failed". I have no constraint other than >> INTEGER PRIMARY KEY on id. > > You should have something other than integer primary key, otherwise it works: > > sqlite> create table t (id integer primary key, foo, bar); > sqlite> insert into t values (649, 'foo 1', 'bar 1'); > sqlite> insert into t values (651, 'foo 2', 'bar 2'); > sqlite> .h on > sqlite> select * from t; > id|foo|bar > 649|foo 1|bar 1 > 651|foo 2|bar 2 > sqlite> replace into t (id, foo, bar) select 649, foo, bar from t > where id = 651; > sqlite> select * from t; > id|foo|bar > 649|foo 2|bar 2 > 651|foo 2|bar 2 > >
The only other stuff going on in my db is an FTS3 virtual table with triggers that fire on update/insert/delete. Logically, that shouldn't matter, because the REPLACE should be treated as a normal UPDATE, so the FTS tables should get updated by the triggers without any problem. Maybe REPLACE gets treated as an INSERT, which would cause the constraint error (the insert_in_fts trigger would try to insert another row with the same id in the FTS tables). > Pavel > > On Wed, Apr 7, 2010 at 5:06 PM, P Kishor <[email protected]> wrote: >> On Wed, Apr 7, 2010 at 3:46 PM, Pavel Ivanov <[email protected]> wrote: >>> Probably the only way to do that is >>> >>> REPLACE INTO t (id, foo, bar, ...) >>> SELECT 649, foo, bar, ... >>> WHERE id = 651 >>> >> >> I get a "Error: constraint failed". I have no constraint other than >> INTEGER PRIMARY KEY on id. >> >>> >>> Pavel >>> >>> On Wed, Apr 7, 2010 at 4:33 PM, P Kishor <[email protected]> wrote: >>>> is there a canonical way of copying all the columns (except for the >>>> PKs, of course) from one row to another in the same table? I want to >>>> make all columns of row id = 649 in my table to become a duplicate of >>>> the values in row id = 651... of course, I want the id 649 to remain >>>> 649. >>>> >>>> UPDATE t649 >>>> SET >>>> t649.foo = t651.foo >>>> t649.bar = t651.bar >>>> .. >>>> (FROM table t649 ... ) <=== this is where I am drawing a blank >>>> >>>> >>>> -- >>>> Puneet Kishor >> _______________________________________________ >> sqlite-users mailing list >> [email protected] >> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >> > _______________________________________________ > sqlite-users mailing list > [email protected] > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > -- Puneet Kishor http://www.punkish.org Carbon Model http://carbonmodel.org Charter Member, Open Source Geospatial Foundation http://www.osgeo.org Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor Nelson Institute, UW-Madison http://www.nelson.wisc.edu ----------------------------------------------------------------------- Assertions are politics; backing up assertions with evidence is science ======================================================================= _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

