2013-03-21 5 views
2

레코드를 sqlite 데이터베이스에 삽입하거나 업데이트하려고하며 새 값이 이전 버전보다 큰 경우에만 값을 업데이트합니다. 나는이 같은 명령을 시도했습니다SQLite 조건부 삽입 또는 바꾸기

CREATE table IF NOT EXISTS SearchTable 
    (Owner INTEGER PRIMARY KEY, Generations INTEGER DEFAULT 0) 

:

스키마는

INSERT OR REPLACE INTO SearchTable(Owner, Generations) 
VALUES (?, MAX((SELECT Generations FROM SearchTable WHERE Owner = ?), ?)) 

를하지만 나에게 세대에 대한 null 값을 제공합니다.

나는 약간 도움을 사용할 수 있었다.

답변

7

INSERT OR REPLACE INTO SearchTable(Owner, Generations) 
SELECT ?, MAX(Generations) FROM SearchTable WHERE Owner = ? 
+0

감사 peterm는보십시오. 나는 다음을 사용하여 끝냈다 : SearchTable (Owner, Generations)에 INSERT 또는 REPLACE한다. SELECT?, MIN (?, COALESCE (Generations, 999)) FROM SearchTable WHERE Owner =? – HalR

+0

좋습니다! 당신은 확실히 환영합니다. – peterm