본문 바로가기
Errors

23.02.16 MySQL 특정 컬럼 Update 시 error 해결

by SoulMania 2023. 2. 16.

tablr 구조는create table spdb.simplemember(
no int auto_increment NOT NULL primary key,
id varchar(40) NOT NULL,
passwd varchar(20) NOT NULL,
    name varchar(50) NOT NULL,
gender varchar(10) NOT NULL,
regdate varchar(50) NOT NULL
)engine=innoDB default character set=utf8;

 

같이 생성 하였고

 

insert into simplemember(id, passwd, name, gender, regdate)
values('adminid', 'asdf123', '관리자', '남성', '2020/01/01');

 

라는 샘플 데이터를 입력 해놓았다.

 

 

그리고 해당 샘플데이터에 대한

 

passwd 컬럼의 값을 udpate하기 위해

 

update simplemember set passwd='new1234'
where id='adminid';

 

쿼리로 update를 시도 하였는데 아래와 같은 Error가  발생하였다.

 

 

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.

 

와 같은 에러가 발생

 

 

에러원인

테이블에서 키값을 이용한 update나 delete만을 허용하도록 되어 있는데, 그렇지 않게 좀더 넓은 범위의 sql을 적용하려고 할때 workbench에서 경고를 주는것임.
즉 하나의 레코드만을 update, delete하도록 설정되어 있는데, 다수의 레코드를 update나 delete하는 sql명령어가 실행되기 때문에 발생을 하는 것임.

해결방법1

아래와 같은 sql로 환경변수를 변경해준다. (일시적인 Safe모드 해제)
set sql_safe_updates=0;

 

해결방법2

 

Workbench Preferences에서 안전모드(Safe mode)를 해제한다.
아래의 그림에 있는 부분에서 체크를 해제한후에 다시 workbench를 시작한다.
(이렇게 하면 항상 Safe모드가 해제된 상태임)

 

 

 

위와 같이 설정하여

 

update simplemember set passwd='new1234'
where id='adminid';

 

쿼리에 대한 에러 해결(그리고  passwd 컬럼 값 update 완료)

 

 

 

참고url

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kkson50&logNo=221251167091 

 

[문제해결] You are using safe update mode

에러현상Mysql에서 특정한 sql을 실행을 하는데, 아래와 같은 에러가 리턴됨. Error Code: 11...

blog.naver.com