ON DUPLICATEKEYUPDATEを使用してmySQLクエリでスタックしています。
エラーが発生しました:
mySQL Error: 1062 - Duplicate entry 'hr2461809-3' for key 'fname'
テーブルは次のようになります。
id int(10) NOT NULL default '0',
picid int(10) unsigned NOT NULL default '0',
fname varchar(255) NOT NULL default '',
type varchar(5) NOT NULL default '.jpg',
path varchar(255) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY fname (fname),
KEY picid (propid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
そして、壊れているクエリはこれです:
INSERT INTO images SET picid=732, fname='hr2461809-3', path='pictures/' ON DUPLICATE KEY UPDATE picid=732, fname='hr2461809-3', path='pictures/'
私は問題なくアプリの他の場所で非常によく似たクエリを使用しています。なぜこれが壊れたのかわかりません。fnameのUNIQUEKEYが違反された場合、違反が発生した行を更新するだけだと思いましたか?
助けてくれてありがとう