Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데브마우스

[SQL] UPDATE와 DELETE 그리고 Safe Update Mode 해제 방법 정리 본문

데이터베이스/SQL: 정리

[SQL] UPDATE와 DELETE 그리고 Safe Update Mode 해제 방법 정리

데브마우스 2024. 1. 3. 10:16

UPDATE 문

DML(데이터 조작 언어)에 해당되며 행(레코드)의 값을 변경할 때 사용합니다.

예제 코드는 아래와 같습니다.

-- 영어 'Seoul'로 작성된 행(레코드)들을 '서울'로 변경하는 SQL문입니다.
UPDATE city_popul SET city_name = '서울' WHERE city_name = 'Seoul';
SELECT * FROM city_popul WHERE city_name = "서울";
-- city_name이 'New York'인 행의 city_name을 '뉴욕'으로 변경하고 population을 0으로 변경합니다.
UPDATE city_popul SET city_name = '뉴욕', population=0 WHERE city_name = 'New York';
SELECT * FROM city_popul WHERE city_name = '뉴욕';
-- UPDATE로 데이터의 값을 변경하는 방법입니다. population 열을 10000으로 나눈 뒤 population에 대입하였습니다.
UPDATE city_popul SET population = population / 10000;
SELECT * FROM city_popul LIMIT 5;

 

MySQL Workbench의 Safe Updates 해제 방법

데이터 베이스에서 실수를 통한 일괄 삭제나 수정을 방지하기 위해 모든 행을 수정하려고 하면 MySQL Workbench에서는 다음과 같은 에러 코드로 에러 코드 1175를 내보내게 되어 있습니다. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.   To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec 

 

Safe mode를 해제하는 방법을 소개하겠습니다.

상단 탭의 [Edit] - [Preferences]를 클릭합니다. 

[SQL Editor] -> [Safe Updates (rejects UPDATEs and DELETEs with no restrictions)]를 체크 해제한 후 OK 버튼을 클릭합니다. 그 후 MySQL 워크벤치를 재시작해야 합니다.

 

DELETE문

DELETE문은 테이블의 행을 삭제하는 데이터 조작 언어입니다.

아래 코드에서는 DELETE와 LIKE를 활용하여 이름이 New로 시작하는 행(레코드)를 삭제하는 SQL문입니다.

DELETE FROM city_popul WHERE city_name LIKE 'New%';