我有一個 mysql 數據庫,查詢是用 PHP 構建的。該查詢是一個傳統的更新查詢,但是當它運行時,我收到一個錯誤,指出 1062 Duplicate entry '4146' for key 'PRIMARY'。這似乎違反直覺,因為我正在嘗試更新第 4146 行,我不確定它為什么會抱怨。我還有其他可以正常工作的 PDO 語句。我試過指定各種 PDO::PARAM,并且在谷歌上搜索了大約一個小時沒有找到一個好的答案。這是基本的 sql 語句,后跟錯誤:UPDATE tmp_event set event_no=:event_no, artist_no=:artist_no, squality_no=:squality_no, studio_album=:studio_album, album=:album, concert_display=:concert_display, collection_display=:collection_display, interview=:interview, complete=:complete, tradeable=:tradeable, event_date=:event_date, unqualified=:unqualified, event_day=:event_day, event_month=:event_month, event_year=:event_year, comments=:comments, venue_no=:venue_no, media_no=:media_noPDO 異常:PDOException:SQLSTATE[23000]:違反完整性約束:1062 /media/web/www/2.4/admin/submit.php:969 中的鍵 'PRIMARY' 的重復條目 '4146' 堆棧跟蹤:#0 /media/ web/www/2.4/admin/submit.php(969): PDOStatement->execute() #1 {main}我希望查詢執行更新沒有錯誤。感謝您的任何見解!
1 回答

神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
您的查詢沒有 WHERE 子句,因此它將嘗試更新表中的每一行。一旦它在第一行這樣做,它就會嘗試設置該event_no
列并發現它有重復項。
在查詢中添加 WHERE 子句,不要嘗試設置 event_no
UPDATE tmp_event set artist_no=:artist_no, squality_no=:squality_no, studio_album=:studio_album, album=:album, concert_display=:concert_display, collection_display=:collection_display, interview=:interview, complete=:complete, tradeable=:tradeable, event_date=:event_date, unqualified=:unqualified, event_day=:event_day, event_month=:event_month, event_year=:event_year, comments=:comments, venue_no=:venue_no, media_no=:media_no WHERE event_no = :event_no
- 1 回答
- 0 關注
- 235 瀏覽
添加回答
舉報
0/150
提交
取消