> 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


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

Reply via email to