首页 > 解决方案 > 如何知道从 upsert 查询中运行了什么

问题描述

我有一个查询

<cfquery name="qryTemp" datasource="someDSN">
if not exists (select someID from tempTable where someID = 20)
insert into tempTable (someID, colA, colB) values (1,2,3)
else
update tempTable set
colA = 2, colB =3
where someID = 1
</query> 

是否有任何标识符可以指出它是插入还是更新?如果有帮助,我可以将结果属性添加到查询中。

标签: coldfusioncoldfusion-2016

解决方案


我会尝试给cfquery标签一个结果参数,并检查该结果是否具有插入 ID:

编辑:使用了一个不会使<cfif>.

<cfquery name="qryTemp" datasource="someDSN" result="local.results">
if not exists (select someID from tempTable where someID = 20)
insert into tempTable (someID, colA, colB) values (1,2,3)
else
update tempTable set
colA = 2, colB =3
where someID = 1
</query>

<cfif structKeyExists(local.results, 'GENERATEDKEY')>
Do your stuff here...
</cfif>

(查看文档以了解哪个GENERATEDKEY最适合您的目的)


推荐阅读