내 데이터베이스는 SQLite이지만 일반적으로 SQL에 적용되는 질문은 확실합니다. 예를 들어, "id"(기본 키), "name", "selected"열이있는 테이블 "students"가 있습니다. 때로는 외부 소스에서 테이블을 업데이트해야하지만 ID 및 이름 테이블 만받습니다. 같은 ID를 가진 행이 존재하지 않는 경우SQL : 새 레코드를 삽입하거나 일부 필드 만 바꾸는 쿼리
행이 이미 업데이트가 존재하는 경우
"선택"에 대한 기본 값을 테이블에 새 행을 추가 업데이트가 각 행에 대해 발생 말했을 때 나는 필요 이 자리에 하나의 쿼리를 일괄 적으로 수행해야
전용 "이름"필드는 untouching은 "선택". 또한 사례가 단순 해졌고, 실제로 업데이트 할 여러 필드와 여러 "로컬"필드를 포함하는 테이블 세트를 업데이트하기위한 범용 코드를 작성해야합니다.
불행히도 SQLite에 대한 내 욕구를 표현할 수있는 적절한 방법을 찾을 수 없습니다. 내가 REPLACE 사용하는 경우 쿼리
INSERT OR REPLACE INTO students (id, name) VALUES (:id, :name)
내가 UPDATE를 사용하는 경우 동안이의 "선택"필드를 치워 것은 :
UPDATE students SET name = :name WHERE id = :id
이 새 행을 추가하지 않습니다.
그래서 올바른 방법은 무엇입니까? 나는 아주 간단한 것을 놓치고있는 느낌이 들었다. 나는 대답을 얻었을 때 매우 바보 같은 느낌이 들었다.