私はPythonが初めてで、Pythonを基本的なORMとしてStormを使い始めました。
ファイルに大量のデータがあり、いくつかの重複があります。それらを識別するために、いくつかの行の ID が重複していることがわかります。
それらをデータベースに挿入したいのですが、idを主キーに設定したので、重複することはありません。重複している場合、コードでテーブルへのデータの挿入を無視したい。しかし、代わりに失敗するだけです_mysql_exceptions.IntegrityError: (1062, "Duplicate entry '75083587476530022' for key 'PRIMARY'")
これは私のクラスの定義です
from storm.locals import *
class Board(object):
__storm_table__ = 'boards'
id = Int(primary=True)
description = Unicode()
category = Unicode()
def __init__(self, val):
self.id = val['id']
self.description = val['description']
self.category = val['category']
行を作成するには、次のようにします。
database = create_database('mysql://root@/mydb')
store = Store(database)
data = {u'description': u'', u'id': 165366686256470180, u'category': u'Children'}
store.add(Board(data))
store.commit()
store.flush()
また、MYSQLでできることを知っています
ON DUPLICATE KEY UPDATE o
Storm にこれを使用させる方法はありますか?