간단히 말하면 테이블에 on() 조건을 만족하는 데이터가 있는지 확인하여 있으면 데이터를 업데이트하고, 없으면 데이터를 삽입하는 것입니다.
두 개의 필드 a와 b가 있는 테이블 T가 있습니다. 테이블 T에 삽입/업데이트를 수행하려고 합니다. 조건이 충족되면 T에서 b 값을 업데이트하고, 그렇지 않으면 T에 레코드를 삽입합니다. . Microsoft의 SQL 구문에서는 간단한 문장이면 충분합니다. SQL Server의 구문은 다음과 같습니다. (권장 학습: MySQL 비디오 튜토리얼)
if exists(select 1 from T where T.a='1001' ) update T set T.b=2 Where T.a='1001' else insert into T(a,b) values('1001',2);
하지만 분명히 이 구문은 SQL에 대해 하나의 명령문만 변경할 수 있습니다. 따라서 Merge into(Oracle 9i에 도입된 함수) 구문이 있습니다.
merge into 目标表 a using 源表 b on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) when matched then update set a.更新字段=b.字段 when not matched then insert into a(字段1,字段2……)values(值1,值2……)
"Insert 및 Update 구문을 모두 포함하는 Merge 문에서 총 삽입/업데이트 레코드 수는 Using 문 "Source 테이블"에 있습니다. 레코드 수"입니다.
소스 테이블 b는 a와 다른 테이블 구조를 가진 테이블일 수도 있고, 동일한 테이블 구조를 가진 임시 테이블일 수도 있고, 우리가 직접 조립한 데이터일 수도 있습니다.
더 많은 MySQL 관련 기술 기사를 확인하세요. MySQL 데이터베이스 그래픽 튜토리얼 칼럼을 방문하여 알아보세요!
위 내용은 사용법에 병합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!