본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

Database/MySQL

MySQL의 안전업데이트 모드, 실수로 테이블 전체 업데이트하는것을 방지하기 위한 방안: Error Code: 1175 You are using safe update mode

Error Code: 1175 You are using safe update mode MySQL의 안전업데이트 모드, 설치시 기본 check 되어있다. 

where 조건이 키칼럼 기준이 아닐경우 전체 update을 막는다.

0	72	15:45:59	UPDATE EMPLOYEE
 SET 
     HIRE_DATE = DATE_ADD(HIRE_DATE, INTERVAL 120 MONTH),
     SALARY = SALARY + 1000000,
     EMP_NO = CONCAT(CAST(SUBSTRING(EMP_NO, 1, 2) AS UNSIGNED) + 10, SUBSTRING(EMP_NO, 3))	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.016 sec

 

 


UPDATE EMPLOYEE SET ... 는 where없이 전체 수정이 가능하다. 

이에 실수로 테이블 전체 업데이트하는것을 방지하기 위한 방안. safe update mode의 조건은 아래와같다.

PRIMARY KEY (EMP_ID) 조건
LIMIT
KEY 컬럼 기반 WHERE

PK 컬럼 조건을 넣거나, 세이프모드를 끄거나, 임시로 끌 수 있다.

(임시) SET SQL_SAFE_UPDATES = 0;
(다시 세이프모드) SET SQL_SAFE_UPDATES = 1;

 

 

 

세이프모드를 끄는 방법도 알아보자.

edit - perference - safe updates 체크해제 - 확인 - 재시작

 

 

 

같은코드라도 safemode를 비활성화시키니 잘 돌아간다.