2016-07-31 6 views
1

私はSymfony2/Doctrine2プロジェクトでスクリプトを実行しています。Doctrine2鍵停止実行の重複エントリ

Doctrine \ DBAL \ Exception \ UniqueConstraintViolationException例外が表示されます。

An exception occurred while executing 
'INSERT INTO user (name, created_at) VALUES (?, ?)' 
with params ["Gaurav" "2016-07-31 17:10:54"]:    

SQLSTATE[23000]: Integrity constraint violation: 
1062 Duplicate entry 'Gaurav' for key 'UNIQ_8C9F36105E237E06' 

どのように私はこれを避けることができますか?

私はリポジトリfindByOne()を使用していて、レコードを更新しています。それでもSQLクエリが生成されます。

以下が見つかりました。postしかし、これが必要な場合は、わからない。

お知らせください。

+0

「更新」はどうやってやっていますか? INSERTを取得して更新するのが奇妙に思えます。私は何らかのバッチ操作をしていると思われる。 – Cerad

+0

@セラードはい。ファイルからの入力をループで読み取るような一種のバッチ操作です。 – Gaurav

答えて

0

dbスキーマの定義方法を確認してください。この例外は、uniqueとして定義されている列に重複値を挿入しようとしたことを示しています。

+0

はい。しかし、リポジトリからレコードを取得して管理されたエンティティを更新しようとすると、dbレイヤーに到達すべきではありません。 – Gaurav

+0

ソースコードを投稿できますか? – SilvioMarijic