mysql은 syntax 에러 없이 바로 delete가 되버리나요?? 0 2 1,114

by 김쿠쿠 [SQL Query] [2019.04.12 18:29:49]


안녕하세요.

작업하다가 당황스러운 일을 당해서.. ㅠㅠ 이미 엎질러져 버린 일이라 어쩔순 없지만

궁금한 점이 있어서 이렇게 글을 남깁니다.

 

최근에 mysql DB를 사용하게 되었는데요,

특정 데이터를 삭제 하기 위해서,

delete from table_a where a_idx in (select a_idx from table_b where column_b = 1300);

in query 안에 서브쿼리로 조회한 내용으로 delete 하는 흔한 delete 쿼리였는데요.

실제로 in query 안에 서브쿼리는 제가 잘못 입력하여(a_idx 컬럼을 잘못입력하여)

조회되지 않는 select 구문이었는데요..

syntax 에러 없이...

table_a라는 테이블의 데이터가 모두 삭제가 되어 버렸습니다.

 

이건 mysql의 특성인건가요?

오라클을 오래 쓰다가 당황스러운 일을 당해 약간 맨붕입니다..

 

 

 

by DarkBee [2019.04.12 21:24:56]

네 저도 최근에 겪어본 일이라

 

8.0대는 체크할지도 모르겠네요


by 마농 [2019.04.12 22:30:27]

정상 동작입니다. 타 dbms 도 동일합니다.
b 의 컬럼을 썼다면 비상관서브쿼리인데.
오기로 적은 컬럼때문에 상관서브쿼리가 된 것입니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입