微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试在 mysql 中使用重复密钥

如何解决尝试在 mysql 中使用重复密钥

我有这个代码

<cfquery >
        INSERT IGnorE INTO tblcustomers(CustomerCode,CustomerID,FirstName,LastName,lid,status) 
        VALUES(<cfqueryparam cfsqltype="varchar" value="#queryData.CustomerCode[currentRow]#">,<cfqueryparam cfsqltype="integer" value="#queryData.customerID[currentRow]#">,<cfqueryparam cfsqltype="varchar" value="#queryData.firstname[currentRow]#">,<cfqueryparam cfsqltype="varchar" value="#queryData.lastname[currentRow]#">,<cfqueryparam cfsqltype="integer" value="#queryData.LocationID[currentRow]#">,<cfqueryparam cfsqltype="integer" value="#queryData.status[currentRow]#">
            )
        </cfquery>

试图检查customerID是否存在,它应该做更新,因为customerID是唯一的

任何线索我该怎么做

解决方法

如果记录已经存档,您需要告诉数据库该怎么做。

INSERT INTO tblcustomers(CustomerCode,CustomerID,FirstName,LastName,lid,status) 
VALUES
(
        <cfqueryparam cfsqltype="varchar" value="#queryData.CustomerCode[currentRow]#">,<cfqueryparam cfsqltype="integer" value="#queryData.customerID[currentRow]#">,<cfqueryparam cfsqltype="varchar" value="#queryData.firstname[currentRow]#">,<cfqueryparam cfsqltype="varchar" value="#queryData.lastname[currentRow]#">,<cfqueryparam cfsqltype="integer" value="#queryData.LocationID[currentRow]#">,<cfqueryparam cfsqltype="integer" value="#queryData.status[currentRow]#">
)
ON DUPLICATE KEY UPDATE
CustomerCode = <cfqueryparam cfsqltype="varchar" value="#queryData.CustomerCode[currentRow]#">,CustomerID = <cfqueryparam cfsqltype="integer" value="#queryData.customerID[currentRow]#">,FirstName = <cfqueryparam cfsqltype="varchar" value="#queryData.firstname[currentRow]#">,LastName = <cfqueryparam cfsqltype="varchar" value="#queryData.lastname[currentRow]#">,lid = <cfqueryparam cfsqltype="integer" value="#queryData.LocationID[currentRow]#">,status = <cfqueryparam cfsqltype="integer" value="#queryData.status[currentRow]#">

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。