Mysql报错问题排查

1、sql_mode问题

SET @v_rowcount = 0;
  select count(*) into @v_rowcount from dual
    where exists (select * from businstep where finance_type='5' and businflow_id='0' and step_no=3);
SET @sql = IF(@v_rowcount = 0,"insert into businstep(finance_type,businflow_id,step_no,step_name,step_caption,menu_id,warn_type,pre_step_str,auto_flag) values('5','0',3,'期货清算入账',' ',210106,'0',' ','1');
	","update businstep set step_name='期货清算入账' , step_caption=' ' , menu_id=210106 , warn_type='0' , pre_step_str=' ' , auto_flag='1' where finance_type='5' and businflow_id='0' and step_no=3;");
PREPARE stmt FROM @sql;
EXECUTE stmt;

执行的时候报如下错误:

c951df173d46695ddc889b01db215eb2916.jpg

原因是: sql_mode=oracle 不支持双引号

解决方式为:修改Mariadb的配置文件配置文件路径:/etc/my.cnf.d/server.cnf),将原有oracle的配置模式中‘ANSI_QUOTES’去除,即将sql_mode的值修改为'PIPES_AS_CONCAT,IGNORE_SPACE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER' ;

 

转载于:https://my.oschina.net/u/2332532/blog/3014649

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值