2017-12-06 14 views
0

MySQL 테이블의 행을 업데이트하려고하는데 열의 데이터가 -122.333351900이며 이미 있으므로 데이터 유형과 일치하지 않는 길이에 문제가 없습니다. 및 그 길이. 나는 UPDATE의 SQL 명령을 실행할 때경도에 대한 MySQL 정밀도 DECIMAL (13,9)

는하지만 왜 그 잘못된 이해가 안

ERROR 1264 (22003): Out of range value for column 'longitude' at row 1 

실패? 이미이 값을 삽입 했으므로 UPDATE 명령을 실행하면 오류가 발생하여 실패합니다!

+0

해당 테이블에 트리거가 있습니까? –

+0

@juergend 너는 내 천사 야! 대답으로 넣으십시오. 받아 들일 수 있습니다 .... 트리거가 잘못된 데이터 유형을 가지고 있으므로 문제가 있습니다. – Sana

+2

가치가 있는지 확인하려면 https://stackoverflow.com/questions/7167604/how-accurately-should-i-store-latitude-and-longitude를 확인하십시오. DECIMAL (13,9)의 정밀도를 사용하면 밀리미터의 10 분의 1! :-) –

답변

2

테이블에 트리거가 있는지 확인하십시오. 트리거는 테이블의 업데이트/삽입 직전 또는 직후에 실행됩니다.

오류가 있으면 실제로 관련된 트리거가 실패 할 때 업데이트가 잘못되어있는 것 같습니다.

+0

트리거가 있었고 아카이브 테이블의 열에 다른 DECIMAL 정의가있었습니다. – Sana