mysql> update tablename set fieldname ='C200900674'where fieldname - 'C200900673';MySQL UPDATE行爲
ERROR 1062(23000):重複項 'C200900674-2008-0-1' 關鍵1個
對此有何想法或建議?我們有人不小心用負號代替等號進行更新。它顯然試圖改變所有小於該值的記錄?儘管它是字母數字式的,並且非常不完整。最重要的是,一些記錄在得到該錯誤之前進行了更新,並且根本沒有任何反饋。沒有什麼比「查詢OK,X行受到影響(0.00秒)」,所以我們不知道有多少人改變了。 autocommit = 1所以沒有能力回滾。
無論如何,只是尋找任何提示或指針就可以了。爲什麼那個查詢確實是什麼,它真的看起來應該向我返回一個錯誤。除了不讓缺乏經驗的管理員做一些頭腦事情的明顯答案。
該表位於INNODB中,顯然我們*經歷了正在更改的記錄數量。迄今爲止我所能發現的所有證據都指出了這一點。在此框中啓用了二進制日誌記錄,以便挖掘甚至包含「mysqlbinlog -s {logfile} | grep -i {該記錄的唯一標識符}」。更新語句*的FWIW也記錄在binlog中。我將繼續玩這個,並可能嘗試製作測試數據庫和一些表格,並嘗試在受控環境中重現它。謝謝... – wdingus 2009-05-20 14:07:20