MySQL – 데이터가 존재하지 않는 경우에만 새 행을 삽입하는 방법

Mysql Deiteoga Jonjaehaji Anhneun Gyeong Ueman Sae Haeng Eul Sab Ibhaneun Bangbeob



MySQL은 데이터베이스에 데이터를 저장하는 유명한 오픈 소스 RDBMS입니다. 데이터베이스 테이블에 데이터를 삽입하는 것은 일반적인 작업입니다. 때때로 사용자는 중복을 제거하기 위해 중복 데이터를 삽입하는 것을 원하지 않습니다. MySQL은 유사한 데이터가 이미 존재하지 않는 경우에만 사용자가 데이터를 삽입하도록 허용합니다.

이 게시물에서는 데이터가 MySQL 테이블에 이미 존재하지 않는 경우에만 새 행을 삽입하는 방법에 대해 설명합니다. 이 게시물을 시작하기 전에 MySQL 로컬 서버에 로그인하고 작업할 데이터베이스를 선택했는지 확인하십시오.

'INSERT IGNORE' 문을 사용하여 데이터가 존재하지 않는 경우에만 새 행 삽입

음, 제목의 질문에 대한 대답은 매우 간단하고 간단합니다. 간단히 ' 끼워 넣다 ' 키워드와 ' 무시하다 ” 키워드. 이렇게 하면 MySQL에서 데이터의 이전 항목을 찾을 수 없는 경우에만 새 데이터 또는 삽입 쿼리가 실행됩니다. 이에 대한 간략한 개요를 보려면 다음 구문을 살펴보십시오.







끼워 넣다 무시하다 안으로 [ 테이블 - 이름 ] ( [ 열1 - 이름 ] , [ 열2 - 이름 ] , [ 열3 - 이름 ] ) 가치 ( [ 가치 1 ] , [ 값2 ] , [ 값3 ] ) ;

사용자가 ' 1 ”, “ 남자 ' 그리고 ' 암사슴 ”에서 고객 ' 열에 대한 테이블 ' ID ,' ' 이름 ' 그리고 ' ” 각각. 이러한 값이 있는 행이 이미 존재하지 않는 경우 이 쿼리를 실행하여 이러한 값을 삽입합니다.



선택하다 * 에서 고객;
끼워 넣다 무시하다 안으로 고객 ( ID , 이름 , ) 가치 ( 1 , '남자' , '암사슴' ) ;

출력에는 쿼리 실행 전후의 테이블 데이터를 표시하는 두 개의 테이블이 포함됩니다. 행이 이미 존재하여 MySQL이 오류를 표시하지 않고 삽입 프로세스를 성공적으로 무시했기 때문에 테이블에서 아무 것도 변경되지 않음을 알 수 있습니다.







'WHERE NOT EXISTS' 절을 사용하여 데이터가 존재하지 않는 경우에만 새 행 삽입

MySQL에서는 ' 어디 존재하지 않음 ” 절은 “에서 사용될 때 테이블에 이미 존재하는 행의 삽입을 방지합니다. 에 집어 넣다 ” 조건을 정의하는 하위 쿼리가 있는 문. 이 절이 하위 쿼리 '와 함께 사용되는 경우 (SELECT * FROM [테이블명] [컬럼명]=[식]); ” 조건을 충족하는 행이 테이블에 있는지 확인합니다. 행이 존재하는 경우 ' 존재하지 않는 곳 ' 절은 거짓 값을 반환하고 ' 선택하다 ” 문은 어떤 행도 반환하지 않습니다. 결과적으로 행이 테이블에 삽입되지 않습니다. 구문은 다음과 같습니다.

끼워 넣다 안으로 [ 테이블 - 이름 ] ( [ 열1 - 이름 ] , [ 열2 - 이름 ] , [ 열3 - 이름 ] )
선택하다 [ 가치 1 ] , [ 값2 ] , [ 값3 ]
어디 아니다 존재한다 ( 선택하다 * 에서 [ 테이블 - 이름 ] [ - 이름 ] = [ 표현 ] ) ;

사용자가 직원 테이블에 ' 1 ”, “ 미국 사람 ' 그리고 ' 헨리엇 ' 열에서 ' ID ”, “ 회사 이름 ' 그리고 ' 담당자 이름 ” 각각. 그러나 id가 ' 1 ”이(가) 테이블에 없거나 존재하지 않습니다. 특정 경우 쿼리는 다음과 같습니다.



선택하다 * 에서 직원;

끼워 넣다 안으로 직원 ( ID , 회사 이름 , 담당자 이름 )
선택하다 1 , '미국 사람' , '헨리엇'
어디 아니다 존재한다 ( 선택하다 * 에서 직원 어디 ID = 1 ) ;

출력에는 ' ID ' 동일 ' 1 ”이미 존재했습니다.

'ON DUPLICATE KEY UPDATE' 절을 사용하여 데이터가 존재하지 않는 경우에만 새 행 삽입

또 다른 방법은 ' 중복 키 업데이트 시 ” 절은 MySQL에서. 이 절은 'if-else' 실행을 형성하는 'INSERT INTO' 쿼리와 함께 사용됩니다. 따라서 이것은 테이블 내부의 데이터가 고유한 경우에만 업데이트됨을 의미합니다. 그렇지 않으면 변경 사항이 발생하지 않습니다. 이에 대한 일반적인 구문은 다음과 같습니다.

끼워 넣다 안으로 [ 테이블 - 이름 ] ( [ 열1 - 이름 ] , [ 열2 - 이름 ] , [ 열3 - 이름 ] ) 가치 ( [ 가치 1 ] , [ 값2 ] , [ 값3 ] )
복제하다 열쇠 업데이트 [ 열1 - 이름 ] = [ 열1 - 이름 ] ;

'에 값을 삽입하는 예를 봅시다. 2 ”, “ 파스칼 ”, “ 닉슨 ”, “ 런던 ”, “ 영국 ' 그리고 “(171) 555-7788 ' 테이블에서 ' 고객 '열의 경우' ID ”, “ 이름 ”, “ ”, “ 도시 ”, “ 국가 ' 그리고 ' 핸드폰 ” 각각. 행이 아직 존재하지 않으면 삽입됩니다. 그렇지 않으면 ' 아이디=아이디 ” 조건이 충족됩니다. 다음 쿼리를 실행합니다.

선택하다 * 에서 고객 ;
끼워 넣다 안으로 고객 ( ID , 이름 , , 도시 , 국가 , 핸드폰 )
가치 ( 2 , '파스칼' , '닉슨' , '런던' , '영국' , '(171) 555-7788' )
복제하다 열쇠 업데이트 ID = ID;

이것은 쿼리를 실행하기 전의 테이블입니다. ' ID ' 동일 ' 2 ' 존재하지 않는다:

쿼리를 실행한 후 이 쿼리는 테이블에 새 행을 삽입합니다.

쿼리를 실행하기 전에 데이터가 존재하지 않으므로 새 행을 성공적으로 삽입했습니다.

결론

MySQL에서는 데이터가 이미 존재하지 않는 경우에만 ' 무시 삽입 ” 진술 또는 “ 존재하지 않는 곳 '의 절 에 집어 넣다 ' 성명. 이를 수행하는 또 다른 방법은 ' 중복 키 업데이트 시 '의 절 에 집어 넣다 ” 문은 행이 이미 존재하는 경우 업데이트합니다. 그렇지 않으면 새 행을 추가하십시오. 해당 게시물은 데이터가 존재하지 않는 경우에만 새 행을 삽입하는 방법에 대해 설명했습니다.