을 사용하는 일부 조건에 따라 테이블 열 값을 업데이트 할, 그리고 I가 알고 있다면 다른 옵션은,하지만 가장 안전한 패턴이 결론에 도달했습니다 당신이 그것을 변경하기 전에 destination
의 사본을 가지고 있기 때문에
create table destination_old as select * from destination;
drop table destination;
create table destination as select
d.*, s.country
from destination_old d left join source s
on d.id=s.id;
그것은 안전합니다. 나는 강력하지만 조금 위험하기 때문에 조인이 포함 된 업데이트 문은 SQLite에 포함되어 있지 않은 것으로 생각됩니다.
위의 패턴을 사용하면 두 개의 country
필드로 끝납니다. 명시 적으로 검색하려는 모든 열을 destination_old
에서 명시하고 coalesce
을 사용하여 source
의 country
필드가 null 인 경우 destination_old
에서 값을 검색하는 것을 피할 수 있습니다. 그래서 예를 들면 :
create table destination as select
d.field1, d.field2,...,coalesce(s.country,d.country) country
from destination_old d left join source s
on d.id=s.id;
출처
2017-05-04 14:16:08
Max
UPDATE 대상 = SET 국가 (일부 국가 소스에서 어디 ID = Destination.id) WHERE EXISTS (소스에서 하나를 선택 어디 ID = Destination.id); –
조금 비슷한 것일까 요? http://stackoverflow.com/questions/2717590/sqlite-upsert-on-duplicate-key-update – Tom