MySQL은 데이터 삽입을 위한 다양한 메커니즘을 제공하므로 중복 행을 방지하는 조건부 삽입을 구현할 수 있습니다.
한 시나리오에는 인스턴스가 고유한 인스턴스, 사용자 및 항목 열이 있는 x_table이라는 테이블이 포함됩니다. 사용자와 항목의 조합이 아직 존재하지 않는 경우에만 x_table에 새 행을 삽입하려면 다음 단계를 따르세요.
MySQL 버전에서 선택을 지원하는 경우 삽입하는 동안 다른 테이블에서 다음 쿼리를 고려하십시오.
INSERT INTO x_table(instance, user, item) SELECT 919191, 123, 456 FROM dual WHERE NOT EXISTS ( SELECT * FROM x_table WHERE user = 123 AND item = 456 );
이 쿼리에서 이중은 유효한 행의 가용성을 보장하는 단일 행 테이블이지만 NOT EXISTS 조건은 중복 행이 없는지 확인합니다. 일치하는 항목이 없으면 새 행이 삽입됩니다.
또는 MERGE 문은 조건부 삽입을 위한 강력한 도구를 제공합니다. 구문은 다음과 같습니다.
MERGE INTO x_table AS target USING ( SELECT 919191 AS instance, 123 AS user, 456 AS item ) AS source ON (target.user = source.user AND target.item = source.item) WHEN NOT MATCHED THEN INSERT VALUES (source.instance, source.user, source.item);
이 경우 USING 절은 삽입할 값을 지정하고 ON 절은 일치 기준을 설정합니다. 대상 테이블(x_table)에 일치하는 행이 없으면 INSERT를 수행합니다.
위 내용은 MySQL에 데이터를 삽입할 때 고유한 행을 보장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!