开发者社区 > 云原生 > 中间件 > 正文

请问seata中,请问大家有没有遇到从1.4.2版本升级到1.6.0版本后,原来嵌套SQL写法报错?

请问seata中,请问大家有没有遇到从1.4.2版本升级到1.6.0版本后,原来嵌套SQL写法报错,这种情况如果排查生产有哪些SQL用的不当去改SQL会有遗漏,有没有好的处理方案?
cf83ceaed83fee1bcf16806fbccd1328.png
f975e35f1632c72c50b652a7996b70bd.png

展开
收起
十一0204 2023-07-11 23:20:14 212 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Seata 1.6.0 版本中,对嵌套 SQL 的支持进行了一些修改和调整,可能会导致部分原来的嵌套 SQL 写法无法正常工作。具体来说,Seata 1.6.0 版本中对嵌套 SQL 的支持进行了如下改进:

    支持多个 Select 子句的嵌套。

    不再支持在嵌套 SQL 中使用分页查询。

    不再支持在嵌套 SQL 中使用子查询。

    不再支持在嵌套 SQL 中使用 WITH 子句。

    如果您在升级到 Seata 1.6.0 版本后遇到了原来嵌套 SQL 写法报错的问题,可能是由于以上改进导致的。建议您检查代码中是否使用了不受支持的嵌套 SQL 写法,并根据 Seata 1.6.0 的新特性和限制进行相应的调整和优化。

    2023-07-29 09:03:14
    赞同 展开评论 打赏
  • 在从 Seata 1.4.2 版本升级到 1.6.0 版本时,可能会遇到一些嵌套 SQL 写法导致的报错。这是因为在 Seata 1.6.0 中引入了一些新的特性和变化,其中包括对 SQL 解析和处理方式的改进。

    具体而言,在 Seata 1.6.0 中,新增了对嵌套 SQL 的支持,但同时也带来了一些限制和注意事项。如果您的代码中使用了嵌套 SQL 写法,并且在升级后出现了报错,可能需要进行以下调整:

    1. 检查语法问题:确保嵌套 SQL 的语法在 Seata 1.6.0 中仍然有效。你可以参考 Seata 官方文档或相关文档来了解关于嵌套 SQL 的用法和限制。

    2. 修改嵌套 SQL 逻辑:根据具体的错误信息和提示,修改代码中的嵌套 SQL 写法,以符合 Seata 1.6.0 的要求。这可能涉及到重写 SQL 查询、修改事务逻辑等。

    3. 回退到较低版本:如果上述调整不可行或者暂时无法解决问题,您可以考虑回退到 Seata 1.4.2 版本,以确保原有的嵌套 SQL 写法能够正常工作。然后,您可以等待 Seata 的后续版本,或者向 Seata 社区报告该问题。

    2023-07-28 15:46:49
    赞同 展开评论 打赏
  • 意中人就是我呀!

    本来就不支持,之前没校验,这样的sql直接提交了倒还好,回滚不了的,是有风险的在1.4.2上,如果决议二阶段是提交那还好,如果决议回滚等着哭吧。此回答整理自钉群“3群-Seata 开源讨论群”。

    2023-07-12 09:44:24
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载