"null 값 을 열 에 삽입 할 수 없습니다" 문제

워 커 프로그램 이 실 행 될 때 이상 이 발생 했 습 니 다. "wareId" 열 에 null 값 을 삽입 할 수 없습니다.이것 은 sql 의 한 insert 명령 에 문제 가 있 음 이 분명 합 니 다.마지막 으로 ibatis 의 mapping 파일 에서 이 sql 을 찾 았 습 니 다:
	insert tableA(wareId,wareName,....)

	select a.wareId, a.wareName,...

	from

	(

	 select wareId, wareName,...

	 from tagWare a

	 left join (###) b on a.wareId=b.wareId

	) as a

	full join

	(

	 select ...

	 from tagWare a

	 left join (***) b on a.wareId=b.wareId

	) as b on a.wareId=b.wareId

	full join

	(

	 select ...

	 from tagWare a

	 left join (~~~) b on a.wareId=b.wareId

	) as c on a.wareId=b.wareId
위의 sql 에서 테이블 A 의 메 인 키 는 wareId 입 니 다. full join 과 연 결 된 몇 개의 하위 테이블 은 모두 tagWare 테이블 을 위주 로 합 니 다. (우 리 는 sql 이 어떻게 작 성 했 는 지 말 하지 않 습 니 다.) 왜 null 값 의 wareId 가 존재 하 는 지 이해 하기 어렵 습 니 다.
아무리 생각해 도 이해 가 되 지 않 는 다.마지막 으로 한 동료 가 이 유 를 찾 아 냈 다. 다른 프로그램 이 실행 되 고 있 기 때문에 tagWare 표 의 기록 을 계속 업데이트 하고 delete 와 insert 를 포함한다.이때 원인 이 수면 위로 떠 올 랐 다.

좋은 웹페이지 즐겨찾기