Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자바 28278
- IAM 사용자
- 코딩테스트
- 백준 2346 자바
- 백준 1764 자바
- 데보션영 3기
- 자바 2164
- 10813 자바
- 28278 스택 2
- 티움투어
- BFS
- 10810 자바
- 1010 자바
- 백준 10866 자바
- 파이썬
- 그리디
- 백준 28278 자바
- dfs
- 2798 자바
- 자바 2346
- 자바
- 2748 자바
- 10807 자바
- 백준
- 자바 10866
- 2164 자바
- IAM Identity Center
- 2346 풍선 터뜨리기
- 자바 1003
- 1764 자바
Archives
- Today
- Total
자두의 데브로그
[MySQL] 괄호를 포함한 기존 데이터 내용 수정하기 본문
문제 상황
기존에 저장했던 데이터의 수가 굉장히 많았고 이와 연관된 데이터가 많아 함부로 데이터를 삭제하거나 행 자체를 수정하기 어려워, 괄호와 내부 내용을 포함하고 있는 데이터들과 같이 수정이 필요한 한 속성의 데이터들만 골라서 괄호를 포함하여 괄호 내부 내용을 삭제할 수 있도록 하는 코드를 작성해야함
해결 방법
update {테이블명} set {컬럼명} = CONCAT(
SUBSTRING_INDEX({컬럼명}, '(', 1),
SUBSTRING_INDEX({컬럼명}, ')', -1)
)
WHERE {컬럼명} REGEXP '\\(.*\\)';
발생 가능한 오류
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.
위 오류는 Safe Update Mode로 인해 발생한다. 이 모드에서는 Update나 Delete 쿼리를 실행할 때 Where 절에 키 컬럼을 사용하지 않으면, 전체 테이블의 데이터를 수정하는 것을 방지하기 위해 에러가 발생
오류 해결 방법 #1
Where절에 키 컬럼 사용하기
WHERE id = your_id;
위와 같이 Where 조건문 추가해서 작성하기
-> 해당 방법을 사용하여 모든 칼럼 대신 중간에 나눠서 두 번에 걸쳐 진행
오류 해결 방법 #2
Safe Update Mode 비활성화
- 메뉴 > Edit > Preferences > 왼쪽 탐색창 > SQL Editor
- Safe Updates 옵션 > OK 클릭
- MySQL Workbench 재시작 후, 쿼리 재실행
실행 결과
'프로젝트' 카테고리의 다른 글
[프로젝트] 포스트맨 이미지 업로드 및 에러 해결 방법 (0) | 2023.10.15 |
---|---|
[MYSQL] 테이블에 있는 모든 데이터 삭제하기 (0) | 2023.07.05 |
[프로젝트] DB 해킹 해결하기 (0) | 2023.07.05 |
[프로젝트] DB 해킹 (0) | 2023.07.04 |
[프로젝트] mysql auto_increment 초기화 (0) | 2023.06.18 |