2012-11-18 1 views
0

MySQL에서는이 트리거를 사용하여 하나의 테이블의 마지막 수정 날짜를 설정했습니다. 그것이 연결 테이블에 삽입에 내가 tbl_sub_model 다음 tbl_badge을 채우는 스크립트를 실행하면저장 함수/트리거에서 테이블을 업데이트 할 수 없습니다.이 저장 함수/트리거를 호출 한 문에서 이미 사용 중이기 때문에 업데이트 할 수 없습니다.

create trigger trg_badge after insert on tbl_badge for each row 
UPDATE tbl_sub_model SET last_modified_date = NOW() 
WHERE sub_model_sk = NEW.sub_model_sk; 

내가 얻을 : 나는 별도의 스크립트를 사용하여 삽입 만하면

Error Code: 1442. Can't update table 'tbl_sub_model' in stored 
function/trigger because it is already used by statement which 
invoked this stored function/trigger. 

상황이 잘 작동 그냥 둘 경우 진술은 sa에있다. 나 스크립트. 동일한 .sql 스크립트를 사용하여 두 테이블에 삽입하는 방법이 있습니까?

+1

'tbl_badge'에 삽입하는'tbl_sub_model'에 트리거가 있습니까? – eggyal

+0

아니요, tbl_sub_model을 참조하는 tbl_badge에 외래 키가 있습니다. 내 의혹은 sql 스크립트가 이전에 삽입 되었기 때문에 tbl_sub_model이 트리거에 의해 편집되는 것을 어떻게 든 잠그고 있지만 명령을 분리하는 방법을 모른다는 것입니다. –

+0

+1 –

답변

0

아 ... 문제가 해결되었습니다. 내 insert 문은 올바른 새 레코드와 관련하여 sub_model_sk를 얻으려면 다른 것들과 tbl_sub_model에 합류했습니다.

이제 막 스크립트 끝 부분에 트리거를 만들 예정입니다.

관련 문제