안녕하세요.엔진은 innodb인 mysql에 c++로 작업중입니다.
여러스레드가 접속해서 멀티로 처리하는데..
쿼리중에
insert into xxx_xxx
select
key1,
key2,
max(key_index)=1
from xxx_xxx
where key1=key;
이런형식의 쿼리가 있습니다.
근데 위 프로세스에서 동시에 여러개의 스레드가 해당 쿼리를 콜하면
"Deadlock found when trying to get lock; try restarting transaction:"
이런 에러를 뱉어내네요.ㅠ.ㅠ.
위 쿼리는 sp로 작성되어있고..
해서
sp 시작하는부분에
start Transaction;
commit;
도 추가해줬는데.. 마찬가지입니다...
어떻게 해줘야 해결이 될까요.ㅠ. 에공. 이런저런 자료를 찾아봤는데. .없는거 같아서 질문드립니다.
도움좀 부탁드릴게요~
|