2012-01-06 1 views
1

ID (auto_inc), name, ... 및 customer_code 필드가있는 고객 테이블이 있습니다. 이 테이블에는 "이전"트리거가 있으며 다른 테이블에서 하나의 고객 코드를 선택하고이 테이블에 새 레코드를 삽입하기 전에 customer_code 필드를 설정합니다. 완벽하게 작동합니다."before"트리거가 삽입 된 후 MySQL PDO LastInsertID가 잘못된 값을 반환합니다.

lastInsertID()를 검색하면 항상 1이 반환됩니다.

저는 PDO와 PHP를 사용하고 있습니다.

도움 주셔서 감사합니다.

+0

테이블에 자동 증가 기본 키가 있습니까? – zerkms

+0

예 ............ –

+0

그리고 트리거를 제거하면 모든 것이 잘 작동합니까?! – zerkms

답변

1

사용중인 MySQL 버전은 무엇입니까? 5.0.12부터 마지막 ​​삽입 ID를 트리거로 덮어 쓰면 안됩니다. 그러나 그 버전 이전에는 트리거가 값을 변경할 수 있었고 후속 쿼리는 잘못된 값을 보게되었습니다.

http://dev.mysql.com/doc/refman/5.0/en/stored-routines-last-insert-id.html

+0

대단히 감사합니다 !!! 이전 버전을 사용하고있었습니다! –