coldfusion - 如何知道从 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>
是否有任何标识符可以指出它是插入还是更新?如果有帮助,我可以将结果属性添加到查询中。
解决方案
我会尝试给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
最适合您的目的)
推荐阅读
- c++ - 如何让函数返回几个不同类型的特征矩阵(C++)
- java - Java - 获取线程内executeScript的返回值
- javascript - 使用 JavaScript 或 Jquery 将焦点设置为动态创建的 DIV
- javascript - 使用 ajax 发布请求更新现有数据 Json
- python - 在pytorch中加载测试数据
- sql - SQL 使用 ID 计算日期,但每个日期只能计算一次
- python - 用 textX 解析 dhcpd.conf
- javascript - 将 javascript 类 Method 定义为常量
- python - 控制 NFC 阅读器的声音
- python - 如何用另一个字典中相似键的计数填充字典值