집 >데이터 베이스 >MySQL 튜토리얼 >MySQL INSERT 문에서 WHERE 절이 유효하지 않은 이유는 무엇이며 대안은 무엇입니까?
MySQL INSERT 문: WHERE 절이 유효하지 않은 이유와 적합한 대안
소개:
MySQL의 INSERT
문은 테이블에 새 행을 추가합니다. 일반적인 오류는 WHERE
문 내에서 INSERT
절을 사용하는 것인데, 이는 구문상 올바르지 않습니다. 이 글에서는 오류에 대해 설명하고 효과적인 대안을 제시합니다.
잘못된 쿼리 및 설명:
다음 쿼리가 잘못되었습니다.
<code class="language-sql">INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;</code>
Users
이 있는 행이 있는 경우에만 id = 1
에 값을 삽입하려고 시도합니다. MySQL의 INSERT
문은 WHERE
절을 지원하지 않습니다. 무조건 삽입되도록 설계되었습니다.
올바른 MySQL INSERT 구문:
표준 INSERT
구문은 다음과 같습니다.
<code class="language-sql">INSERT INTO table_name ( column1, column2, ... ) VALUES ( value1, value2, ... );</code>
WHERE
절은 SELECT
, UPDATE
, DELETE
문에서만 사용됩니다.
대체 접근 방식:
조건부 삽입 또는 업데이트를 수행하려면 다음 옵션을 고려하세요.
id
이 기본 키 또는 고유 제약 조건인 경우 새 행을 삽입하면 됩니다.<code class="language-sql">INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);</code>
UPDATE
를 사용하여 기존 레코드 수정:<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
INSERT ... ON DUPLICATE KEY UPDATE
: 이는 삽입과 업데이트를 결합합니다. 중복 키가 발견되면(예: 기존 id
) 행이 업데이트됩니다. 그렇지 않으면 새 행이 삽입됩니다.<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145;</code>
중요 고려 사항:
id
열: id
이 자동 증가하는 경우 INSERT
문에서 이를 생략할 수 있습니다. MySQL은 자동으로 값을 할당합니다.INSERT ... ON DUPLICATE KEY UPDATE
구문: 위의 내용은 다음과 같이 작성할 수도 있습니다.<code class="language-sql"> INSERT INTO Users SET id = 1, weight = 160, desiredWeight = 145 ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145; ``` This form is useful when updating only some columns.</code>
위 내용은 MySQL INSERT 문에서 WHERE 절이 유효하지 않은 이유는 무엇이며 대안은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!