You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MongoDB ODBC驱动在Power Automate中执行UPDATE语句报错求助

解决MongoDB ODBC驱动(mongosqld)在Power Automate中UPDATE语句报错问题

问题详情

使用MongoDB ODBC驱动(依托mongosqld v2.14.5)通过Power Automate更新数据库资产时,SELECT语句可正常执行,但UPDATE语句触发解析错误:

连接字符串

Provider=MSDASQL;Persist Security Info=False;Extended Properties="DSN=TEST2;SERVER=20.126.XX.XXX;UID={powerautomateuser?source=XXXXX-ro-db};DATABASE={XXXXX-ro-db};PORT=33XX;LOG_QUERY=1;"

执行的SQL语句

UPDATE powerAutomatePosts 
SET facebookPostld = '195982166685423' 
WHERE _id = '646d9c2a9ad6287f1ccfa760';

报错信息

vCorrelation Id: 67dd3281-804a-4df2-9c26-f503340be92f
ERROR [42000] [MySQL][ODBC 1.4(w) Driver][mysqld-5.7.12 mongosqld v2.14.5]parse sql 'UPDATE powerAutomatePosts
SET facebookPostld = '195982166685423'
WHERE _id = '646d9c2a9ad6287f1ccfa760';' error: unexpected UPDATE at position 8 near UPDATE

解决方案

1. 排查数据库权限与实例类型

  • 连接字符串中数据库名含-ro-db(只读标识),确认是否连接到了只读数据库实例。若为只读实例,需切换至可写的MongoDB实例。
  • 检查powerautomateuser用户权限:确认该用户拥有目标集合的UPDATE权限,若当前仅分配了READ权限,需更新权限配置。

2. 修正SQL语句潜在问题

  • 检查字段名拼写:SQL中facebookPostld疑似拼写错误(应为facebookPostId,注意字母l与i的区别),字段名错误会导致mongosqld解析失败。
  • 适配MongoDB主键类型:_id为MongoDB ObjectId类型时,尝试显式转换类型,修改WHERE子句为:
    WHERE _id = CAST('646d9c2a9ad6287f1ccfa760' AS OBJECTID)
    

3. 检查mongosqld配置

  • 确认mongosqld启动时是否启用了写操作支持,需添加启动参数--enableWriteConcern,或在配置文件中开启写操作允许项。默认情况下mongosqld可能限制写操作,需手动开启。

4. 验证ODBC驱动兼容性

  • 当前使用的是MySQL ODBC驱动,建议替换为MongoDB官方ODBC驱动,避免第三方驱动的语法兼容性问题。同时确保驱动版本与mongosqld版本匹配。

内容的提问来源于stack exchange,提问作者Florin Hristache

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:55:16