error 1422 Explicit or implicit commit is not allowed in stored function or trigger 마리아DB 펑션
error 1422 Explicit or implicit commit is not allowed in stored function or trigger 마리아DB 펑션
안녕하세요.
MariaDB에서 펑션를 개발하는 도중에 만난 에러에 대하여 처리 방법을 공유코자 포스트를 남깁니다.
error 1422 이며, function을 개발하는 도중에 만나게 되었습니다.
error 1422 Explicit or implicit commit is not allowed....
해당 에러는 에러 메시지만 봐도 내용을 대강 알 수 있겠죠.
아래와 같이 파파고에서 친절하게 해석을 해줍니다.
commit을 쓰지 못한다 인데..
제가 작성한 펑션에는 커밋이 없었습니다.
(뭘 많이 가렸죠? 죄송합니다..)
아무튼, commit이 없는 구조로 작성을 했는데, 왜 이런 에러가 날까요?
그래서 해당 에러를 우리 google신에게도 문의를 합니다.
요렇게 검색을 해보면, <alter table 명령어에도 묵시적으로 commit이 들어간다~> 뭐 그러한 내용들도 보입니다.
하지만, 저는 alter table도 없었죠?
단순하게 select 해서 바로 return 해주는 아주 평범한 펑션입니다.
여기에서 commit의 의미를 다시한번 생각해 보았습니다. 바로 <트렌젝션> 이죠. commit 과 rollback은 트렌젝션과 밀접한 관련을 가지고 있죠. 아하, 그러고 보니 소스에 rollback이 있었네요.
이걸 제외 시키고 한번 다시 시도 해보았습니다.
잘 실행이 되는것을 확인 할 수 있었습니다.
등잔밑이 어둡다고.. commit만 찾지 말고, rollback도 같이 찾읍시다!!!
좋은 하루 되시구요!
by.sTricky
2021.10.27 - [Database/mariaDB administrator] - mysql 실무에 유용한 sql 로직 모음 #01
2021.10.01 - [Database/mariaDB administrator] - mariadb database collate error 1267 해결 방법
2021.10.21 - [python 기초강의] - python으로 excel 데이터 탭 별로 mysql DB로 이관 하기 (data migration)