2016-06-23 14 views
0

Pythonを使用して空の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

関連する問題