두 개의 mysql 테이블 sent
과 queue
이 있습니다. 회원을 queue
테이블에 삽입합니다. 그러나 나는 같은 멤버를 다시 삽입하고 싶지 않습니다 - 그들이 sent
테이블에 있다면. 그들은 이미 초대장을 보냈습니다.데이터를 삽입 할 때 Mysql이 중복을 확인합니다.
queue
에 삽입 된 회원이 sent
에 존재하지 않는지 어떻게 확인할 수 있습니까?
두 개의 mysql 테이블 sent
과 queue
이 있습니다. 회원을 queue
테이블에 삽입합니다. 그러나 나는 같은 멤버를 다시 삽입하고 싶지 않습니다 - 그들이 sent
테이블에 있다면. 그들은 이미 초대장을 보냈습니다.데이터를 삽입 할 때 Mysql이 중복을 확인합니다.
queue
에 삽입 된 회원이 sent
에 존재하지 않는지 어떻게 확인할 수 있습니까?
INSERT
INTO queue (member)
SELECT $member
FROM dual
WHERE $member NOT IN
(
SELECT member
FROM sent
)
보낸 테이블에서 사용자를 선택하고 반환 된 행이없는 경우 큐 테이블에 삽입하십시오. 그렇지 않으면 아무 것도하지 않습니다. 그보다 더 깊은 곳에서 스키마를 더 공개해야하고 사용자를 고유 한 것으로 표시해야하는 것은 무엇입니까 (이메일 주소?).
이 응용 프로그램의 원리는 동일 큐 엔트리가 안된다는 것을,라면, 왜 큐 테이블 (member_email, MEMBER_ID 또는 식별자가있을 수 있습니다 무엇에) 고유 제한 조건을 추가하지? 그런 다음 REPLACE INTO ...를 사용하여 데이터를 삽입 할 수 있습니다. 실제로는 다음을 의미합니다. 동일한 기본 키 또는 고유 키가있는 기존 값이 있으면 새 값을 삽입하기 전에 삭제됩니다.
REPLACE INTO queue (member_email, queue_detail)
VALUES ('already_existing_email', 'some_data');
이렇게하면 'some_data'로 already_existing_email의 항목을 업데이트합니다.
항목 * already_existing_email *이 없으면 데이터가 삽입됩니다.