更新/插入记录 - ON DUPLICATE KEY UPDATE-不更新记录

时间:2012-12-27 23:39:55

标签: mysql

我正在尝试制作插入或更新记录的语句,具体取决于它在表中的存在。如果“drug_name_pl”字段中的记录存在,则会将其“vote_sum”值增加1。 问题是该语句在尝试更新现有字段时创建记录的evey时间。

这是表结构:

               Field            Type       Null Key Default Extra
                id              int(11)    NO   PRI NULL    auto_increment
                drug_name_pl    varchar(11)NO   MUL NULL      
                vote_sum        int(11)    NO       NULL

查询:

$query = "INSERT INTO lek_podstawowe(drug_name_pl) VALUES ('$drug_name_pl') 
ON DUPLICATE KEY UPDATE vote_sum=vote_sum+1"; 

1 个答案:

答案 0 :(得分:2)

您需要在drug_name_pl上添加唯一键

类似的东西:

CREATE UNIQUE INDEX drug_name_pl_unique ON table_name (drug_name_pl)

不要忘记将table_name更改为表格的真实姓名。还请确保正确转义$ drug_name_pl以保护应用程序表单sql注入