On 3/14/2012 10:13 AM, FengTao DING wrote:
UPDATE game LEFT JOIN updatemag.game AS idcgame ON idcgame.id=game.id SET
game.name=idcgame.name,game.launcher=idcgame.laucher,game.icon=game.directory+idcgame.launcher,
game.info_version=idcgame.information_version,game.modify_version=game.modify_version+1
WHERE game.game_version=idcgame.version AND
game.info_version<>idcgame.information_version

insert or replace into game(
  id, name, launcher, icon, info_version, modify_version, AllOtherFields)
select g.id, idc.name, idc.launcher, g.directory + idc.launcher,
          idc.information_version, g.modify_version + 1, g.AllOtherFields
from game g join updatemag.game idc on (
  g.id = idc.id and g.game_version = idc.version and
  g.info_version != idc.information_version);

If you also explain what your INSERT statement does, it might be possible to roll both INSERT and UPDATE into a single INSERT OR REPLACE.
--
Igor Tandetnik

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

Reply via email to