mysql表创建新行而不是更新

时间:2013-03-21 01:45:19

标签: php mysql

而不是发现存在哪一行' bookName'等于' bookName'只是更新,它创造了一个全新的行。我的命令出了什么问题?谢谢!

$query = mysql_query(
"INSERT INTO custombookinfo (userId, sendToAddress, work, caseStudies, url, entryPoint, date, bookName) 
 VALUES ('$userId', '$emailAddress', '$work', '$caseStudies', '$url', '$entryPoint', '$date', '$bookName') 
 ON DUPLICATE KEY UPDATE bookName = 'bookName'"
);

2 个答案:

答案 0 :(得分:0)

INSERT查询是正确的,但我认为您未能在列UNIQUE上定义bookName约束。执行以下语句:

ALTER TABLE custombookinfo ADD CONSTRAINT tb_uq UNIQUE (bookName);

答案 1 :(得分:0)

根据您希望在表中使用UNIQUE的内容,您应该为user_id或bookName创建索引(PRIMARY或UNIQUE)。

有关 INSERT ... ON DUPLICATE KEY UPDATE http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

的详细信息