尝试在mysql中使用onduplicate密钥
我有这个密码尝试在mysql中使用onduplicate密钥,mysql,coldfusion,lucee,Mysql,Coldfusion,Lucee,我有这个密码 <cfquery > INSERT IGNORE INTO tblcustomers(CustomerCode,CustomerID,FirstName,LastName,lid,status) VALUES(<cfqueryparam cfsqltype="varchar" value="#queryData.CustomerCode[currentRow]#">,
<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>
将IGNORE插入TBL客户(客户代码、客户ID、姓氏、姓氏、lid、状态)
值(,
,
,
,
,
)
试图检查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]#">
插入TBL客户(客户代码、客户ID、名字、姓氏、lid、状态)
价值观
(
,
,
,
,
,
)
关于重复密钥更新
客户代码=,
CustomerID=,
名字=,
LastName=,
lid=,
状态=
如果记录已在文件中,您需要告诉数据库该怎么做
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]#">
插入TBL客户(客户代码、客户ID、名字、姓氏、lid、状态)
价值观
(
,
,
,
,
,
)
关于重复密钥更新
客户代码=,
CustomerID=,
名字=,
LastName=,
lid=,
状态=
我相信mySql有一个upsert
命令。我可以在谷歌上查一查,但你也可以。第一次听说upsert,但我相信它适用于mysql 8.0.0。我在mysql 5.1上,我相信mysql有一个upsert
命令。我可以在谷歌上查一下,但你也可以。第一次听说upsert,但我相信它是针对mysql 8.0.0的,我现在使用的是mysql 5.1