2014-02-10 9 views
0

삽입하려는 행과 기존 행을 비교하여 표의 행을 삽입/제거하고 싶습니다. 그런 다음 'insert rows'와 일치하지 않는 행을 제거하고 (insert 값에서) 이미 존재하지 않는 행을 삽입하십시오.삽입 값과 일치하지 않는 행을 제거하는 동안 삽입하는 방법

매번 모든 행을 삭제 한 다음 삽입 할 수는 있지만 더 효율적인 방법이 있는지 궁금합니다.

예 I의 값 (1, 2, 3, 4, 7) I 삽입하고자 가질 수있다 (데이터의 행을 연결함으로써 가능성 만 변화를 제거 또는 추가하는 것이 될 것이다). 데이터베이스는 (1, 2, 3, 6)을 유지하므로 '6'을 제거하고 '4'와 '7'을 삽입하고 싶습니다. 이들은 테이블의 키이지만 일부 WHERE 절의 영향을받습니다.

실제 시나리오는 사용자가 자신에게 속한 '항목'을 가질 수 있다는 것입니다. 항목이 변경되거나 즉 추가되거나 제거 될 수 있으며 항목의 각 인스턴스가 고유 한 ID를 가진 한 테이블에 모든 user_item을 저장하려고합니다.

+0

세 단계 : A는하지에서이 (새 값)'모든 "실종"기록을 얻기 위해, 누락 된 레코드를 삽입 고아들에게 –

+0

@MarcB 감사의 친구를 삭제, 잘 작동'어디에있는 선택. – Titus

답변

1

그것은 분명하고 삽입 루틴입니다. 빠르고 쉽습니다.

TRUNCATE table; 
INSERT INTO table VALUES (blaah); 
+0

나는 분명히해야만했음을 유감스럽게 생각합니다. 저는 실제로 테이블에 줄을 의미했습니다. 제 질문을 업데이트 할 것입니다. – Titus

관련 문제