MySQL의 REPLACE 문은 SQL 표준의 확장입니다. 이 문은 이전 행이 PRIMARY KEY 또는 UNIQUE 인덱스에 대한 테이블의 새 레코드와 일치하는 경우 새 행이 추가되기 전에 이전 행을 삭제한다는 점을 제외하면 INSERT 문과 동일하게 작동합니다.
이 명령문은 기존 레코드를 테이블로 업데이트하여 업데이트된 상태를 유지하려는 경우에 필요합니다. 이 목적으로 표준 삽입 쿼리를 사용하면 PRIMARY KEY에 대한 중복 항목 또는 UNIQUE 키 오류가 발생합니다. 이 경우 REPLACE 문을 사용하여 작업을 수행합니다. REPLACE 명령에는 둘 중 하나가 필요합니다. 가능한 다음과 같은 작업이 수행됩니다.
tostring 방법
- 기존 데이터 행과 일치하는 값이 없으면 표준 INSERT 문이 수행됩니다.
- 중복 레코드가 발견되면 바꾸기 명령은 기존 행을 삭제한 다음 테이블에 새 레코드를 추가합니다.
REPLACE 문에서 업데이트는 두 단계로 수행되었습니다. 먼저 기존 레코드를 삭제한 다음 표준 INSERT 명령과 유사하게 새로 업데이트된 레코드를 추가합니다. 따라서 REPLACE 문은 두 가지 표준 기능을 수행한다고 말할 수 있습니다. 삭제 그리고 끼워 넣다 .
통사론
다음은 구문입니다 바꾸다 성명서 MySQL :
REPLACE [INTO] table_name(column_list) VALUES(value_list);
MySQL 교체 예
예제를 통해 MySQL에서 REPLACE 문의 작동 방식을 이해해 보겠습니다. 먼저, 이름이 붙은 테이블을 생성하겠습니다. '사람' 다음 명령문을 사용합니다.
vlc는 YouTube에서 비디오를 다운로드합니다.
CREATE TABLE Person ( ID int AUTO_INCREMENT PRIMARY KEY, Name varchar(45) DEFAULT NULL, Email varchar(45) DEFAULT NULL UNIQUE, City varchar(25) DEFAULT NULL );
다음으로, 우리는 다음을 사용하여 테이블에 레코드를 채워야 합니다. 끼워 넣다 아래와 같은 진술:
INSERT INTO Person(ID, Name, Email, City) VALUES (1,'Mike', '[email protected]', 'California'), (2, 'Alexandar', '[email protected]', 'New York'), (3, 'Adam', '[email protected]', 'Los Angeles'), (4, 'Peter', '[email protected]', 'Alaska');
실행 선택하다 아래 출력에 표시될 수 있는 레코드를 확인하는 명령문:
테이블의 데이터를 확인한 후 REPLACE 문을 사용하여 이전 행을 새 행으로 바꿀 수 있습니다. 업데이트하는 아래 명령문을 실행합니다. ID가 4인 사람의 도시 .
REPLACE INTO Person (id, city) VALUES(4,'Amsterdam');
위 명령문이 성공적으로 실행된 후에는 Person 테이블의 데이터를 다시 쿼리하여 대체를 확인해야 합니다.
값은 이름 그리고 이메일 열은 없는 지금. REPLACE 문이 다음과 같이 작동하기 때문입니다.
- 이 문은 먼저 Person 테이블에 새 행을 삽입하려고 시도합니다. 그러나 ID = 4가 이미 테이블에 존재하므로 새 행 삽입에 실패했습니다.
- 따라서 이 명령문은 먼저 ID = 4인 행을 삭제한 다음 암스테르담과 동일한 ID 및 도시를 가진 새 행을 삽입합니다. 이름 및 이메일 열의 값을 지정하지 않았으므로 NULL로 설정되었습니다.
행을 업데이트하는 MySQL REPLACE 문
다음 REPLACE 문을 사용하여 행 데이터를 테이블로 업데이트할 수 있습니다.
REPLACE INTO table SET column1 = value1, column2 = value2;
위의 구문은 다음과 유사합니다. 업데이트 문 REPLACE 키워드를 제외하고. 이 명령문에는 WHERE 절을 사용할 수 없습니다.
REPLACE 문을 사용하여 이름이 지정된 사람의 도시를 업데이트하는 아래 예제를 실행합니다. 마이크 ~에서 캘리포니아 에게 버밍엄 .
REPLACE INTO Person SET ID = 1, Name = 'Mike', City = 'Birmingham';
테이블을 확인한 후 다음 출력을 볼 수 있습니다.
문자열을 정수로 변환하는 방법
열의 값을 지정하지 않은 경우 SET 절 , 이 명령은 다음과 같이 작동합니다. 업데이트 문 이는 REPLACE 문이 해당 열의 기본값을 사용함을 의미합니다.
SELECT 문에서 데이터를 삽입하는 MySQL REPLACE.
다음 REPLACE INTO 문을 사용하여 쿼리에서 반환된 데이터와 함께 테이블에 데이터를 삽입할 수 있습니다.
REPLACE INTO table1(column_list) SELECT column_list FROM table2 WHERE condition;
위의 REPLACE 쿼리는 다음과 유사하다는 점에 유의하세요. 선택 항목에 삽입 성명. REPLACE INTO 문을 사용하여 동일한 테이블 내의 행을 복사하는 아래 예제를 실행합니다.
REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2;
테이블을 확인한 후 다음과 같은 출력을 얻게 됩니다. 이 출력에서는 동일한 테이블 내의 행 복사본이 성공적으로 추가되었음을 확인할 수 있습니다.