다음과 같은 내용을 담고 있는 person이라는 이름의 테이블이 있다고 가정하겠습니다.
우선 내용을 보려면 SELECT * FROM person;의 쿼리를 주면 됩니다.
person 테이블에서 모든 행을 삭제하려면 다음과 같은 쿼리를 주면 됩니다.
DELETE FROM person;
그런데 MySQL Workbench를 이용해서 이 쿼리를 주면 다음과 같은 에러가 뜰 수 있습니다.
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.
대략 해석하자면 세이프 모드를 사용하고 있기 때문에 KEY column을 사용하는 WHERE 문 없이는 테이블을 업데이트 할 수 없다는 것입니다.
그러면 세이프 모드를 해제하는 방법에 대해 알려드리겠습니다. 먼저 빨간 색으로 강조해놓은 버튼을 클릭해주세요.
좌측에서 SQL Editor를 클릭하신 후에 스크롤을 맨 아래로 내리면 Safe Updates 가 있는데, 체크를 해제해줍니다.
MySQL Workbench를 재시작해주세요.
이번에 다시 동일한 쿼리를 줘보겠습니다.
DELETE FROM person;
과연 모든 행이 잘 지워질까요?
일단 성공 메시지가 떴습니다. SELECT * FROM person; 으로 테이블 내용을 조회해보겠습니다.
존재했던 세 개의 행이 모두 잘 삭제된 것을 확인하실 수 있습니다.
오늘은 Safe mode를 해제하는 법에 대해서 알아봤지만, Safe mode는 해놓는 것이 좋습니다. 실수로 소중한 데이터를 삭제하거나 수정해버리면 큰일나기 때문입니다. 디폴트로 설정되어 있는 이유가 있습니다.
'DB > SQL' 카테고리의 다른 글
[MariaDB] SELECT 한 것을 INSERT 하기, INSERT INTO ... SELECT문 (2) | 2021.05.18 |
---|---|
[MariaDB] 특정 열의 값이 NULL이 아닌 것만 보려면 (2) | 2021.05.17 |
MySQL workbench에서 select로 조회했는데 row들이 잘 안 보일 때 (0) | 2021.05.14 |
[MariaDB] 스토어드 프로시저 사용법 및 사용이유 (3) | 2021.05.01 |
[sqlite3] 윈도우 10에 sqlite3 설치 및 환경변수 path 설정하기 (0) | 2021.04.17 |
[MariaDB] enum 데이터 타입 (0) | 2021.03.25 |
[sqlite3] JOIN으로 서로 다른 테이블의 컬럼들 붙이기(내부 조인, 외부 조인) (0) | 2021.03.19 |
[sqlite3] 정수를 정수로 나눴을 때 소수점 이하도 출력되게 하려면 (0) | 2021.03.16 |