> 데이터 베이스 > MySQL 튜토리얼 > MySQL에 데이터를 삽입할 때 고유한 행을 보장하는 방법은 무엇입니까?

MySQL에 데이터를 삽입할 때 고유한 행을 보장하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-25 21:27:09
원래의
778명이 탐색했습니다.

How to Ensure Unique Rows When Inserting Data into MySQL?

MySQL 조건부 삽입: 행 고유성 보장

MySQL은 데이터 삽입을 위한 다양한 메커니즘을 제공하므로 중복 행을 방지하는 조건부 삽입을 구현할 수 있습니다.

한 시나리오에는 인스턴스가 고유한 인스턴스, 사용자 및 항목 열이 있는 x_table이라는 테이블이 포함됩니다. 사용자와 항목의 조합이 아직 존재하지 않는 경우에만 x_table에 새 행을 삽입하려면 다음 단계를 따르세요.

INSERT...SELECT 구문 사용

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 문은 조건부 삽입을 위한 강력한 도구를 제공합니다. 구문은 다음과 같습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿