2016-06-23 7 views
0

파이썬을 사용하여 빈 mySQL 데이터베이스를 업데이트하려고합니다.Python에서 MySQL 데이터베이스에 행을 삽입 할 때 오류가 발생했습니다.

pymysql.err.InternalError: (1416, 'Cannot get geometry object from data you send to the GEOMETRY field')

여기에 문제가있는 코드입니다 :

내가 나타나는 오류입니다

다음
try: 
    with connection.cursor() as cursor: 
     # Create a new record 
     sql = "INSERT INTO `projects` (`name`, `country`, `activation_date`, `active`) VALUES (%s, %s, %s, %s)" 
     cursor.execute(sql, ('Nate', 'USA', '2016-06-23 09:11:32', '1')) 

    connection.commit() 

finally: 
    connection.close() 

테이블이 데이터베이스에 모습입니다이 (가 비어) :

enter image description here

enter image description here

+0

인덱스 및 트리거를 포함하여 테이블의 정의를 포함시킬 수 있습니까? 그것은 당신의 포스트에서 오류를 제기하는 것이 분명하지 않습니다. –

+0

그게 도움이 되나요? – Nate

+1

네, 데이터 형식 ['LineString'] (https://dev.mysql.com/doc/refman/5.7/en/gis-linestring-property-functions.html)을 잘못 사용했다고 생각합니다. varchar 또는 텍스트 유형을 사용합니다. [LineString은 Points로 구성되어 있습니다] (https://dev.mysql.com/doc/refman/5.7/en/gis-linestring-property-functions.html)이며 텍스트가 아닌 공간 데이터를 의미합니다. –

답변

1

MySQL 형식 linestring을 사용하는 것으로 보입니다. MySQL에서는 문자열을 나타내는 올바른 형식이 text 또는 varchar(<some_length>)입니다. https://dev.mysql.com/doc/refman/5.7/en/gis-linestring-property-functions.html

는이 문제를 해결하려면, 단순히 varchar(<some-length>) 또는 textnamecountry의 열 유형을 변경 : 당신이 여기에서 볼 수 linestring은 기하학적 라인의 표현입니다. 참조 : http://dev.mysql.com/doc/refman/5.7/en/char.html

+0

감사합니다. – Nate