idea START TRANSACTION 一直提示语法错误,但是navicat执行正常

在IDEA中执行涉及事务处理和多条SQL查询的代码时,出现MySQL的SQL语法错误。问题在于IDEA可能不支持多语句执行,而在Navicat中没有问题。通过在YML配置文件中添加`allowMultiQueries=true`可以使代码在IDEA中正确运行,允许执行多个SQL查询。
摘要由CSDN通过智能技术生成

Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near"xxxx"at line X
在这里插入图片描述
代码如下

START TRANSACTION;

 START TRANSACTION;

INSERT INTO A (id, head, name)
SELECT id, head, name
FROM B
WHERE id = #{accountId}
ON DUPLICATE KEY UPDATE id = #{accountId};

SELECT B.id,
       B.phone,
       B.uuid,
       COALESCE(A.name, B.name) AS nickname,
       COALESCE(A.head, B.head) AS head,
       A.identity
FROM B
       LEFT JOIN A
       ON B.id = A.id
WHERE B.id = #{accountId}
    FOR UPDATE;

COMMIT;

这段sql在 navicat执行是没有问题的,但是在idea中一直报出语法错误

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
    username: xxx
    password: xxx
    driver-class-name: com.mysql.cj.jdbc.Driver

yml配置文件中 添加 &allowMultiQueries=true 即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值