Greetings!

Long story... But, I have to update a DB from another DB if the record in the DB to be updated contains that record. So, with an attached DB,

ATTACH 'somedb.sqlite' as client;

I execute this command,

BEGIN;
 INSERT OR REPLACE INTO LSOpenProjects
   SELECT * FROM client.LSOpenProjects
     WHERE id IN
     (
       SELECT id from client.LSOpenProjects
  WHERE
    client.LSOpenProjects.ProjID <= 133560 AND
           client.LSOpenProjects.XtraB >= '2014-08-07 00:00:00';
     );
END;

This is great and it's working for one piece of the updates to a SharedDB, but I also want to run another command like the one above for the usersDB that will do the same, except that it should only update the id's that exists in the localDB. In other words, only update from client.LSOpenProjects, if the LSOpenProject table has that id. Imagine these two DBs:
localUserDB: LSOpenProjects
id,...,XtraB
20,...,'2014-04-09 10:20:34'
23,...,'2014-04-09 10:20:34'
27,...,'2014-04-09 10:20:34'
28,...,'2014-04-09 10:20:34'

SharedDB: LSOpenProjects
id,...,XtraB
...
20,...,'2014-08-09 14:23:14'
21,...,'2014-08-08 11:29:25'
22,...,'2014-07-09 16:12:07'
23,...,'2014-04-09 10:20:34'
24,...,'2014-08-08 23:44:11'
25,...,'2014-04-09 10:20:34'
26,...,'2014-08-09 10:00:55'
27,...,'2014-08-09 03:18:20'
28,...,'2014-04-09 10:20:34'
29,...,'2014-04-09 10:20:34'
30,...,'2014-04-09 10:20:34'

The command above would return,
20
21
24
26
27

but it should only update id 20 and 27 and should not insert any into the local DB. I have no idea how to write it. I am now using two separate SQL commands and using some programming to create the updates. Any help would be greatly appreciate it. Thanks.

josé
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to