开发者社区> 问答> 正文

update 字段 null-->空串''时 MySQLSyntaxErrorException

1,表结构

CREATE TABLE User ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) DEFAULT NULL, mobile varchar(255) DEFAULT NULL, num varchar(255) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

2,现有数据 INSERT INTO User VALUES (1, 'aaabcdf', '11', null);

3,update 操作 update User set num='' where id=1;

4,执行 mysqlbinlog --base64-output=decode-rows -v mysql-bin.000009 #170407 17:29:39 server id 91 end_log_pos 426 CRC32 0x4a097dfe Update_rows: table id 109 flags: STMT_END_F

UPDATE test.User WHERE @1=1 @2='aaabcdf' @3='11' @4=NULL SET @1=1 @2='aaabcdf' @3='11' @4='' 5,开启同步, 解析出的EventData [EventData[tableId=4041,tableName=User,schemaName=test,eventType=UPDATE,executeTime=1491557379000,oldKeys=[],keys=[EventColumn[index=0,columnType=4,columnName=id,columnValue=1,isNull=false,isKey=true,isUpdate=true]],columns=[],size=74,pairId=-1,sql=,ddlSchemaName=,syncMode=,syncConsistency=,remedy=false,hint=,withoutSchema=false,canLoadDDL=false,logfileIndex=9,logfileOffset=352]] 生成的sql update test.User set where ( id = ? )

报错:

PairId: 24 , TableId: 4,040 , EventType : U , Time : 1491557379000 Consistency : , Mode :

原提问者GitHub用户 tmriver

展开
收起
大圣东游 2023-06-21 16:22:52 24 0
1 条回答
写回答
取消 提交回答
  • 可以了,升级到v4.2.13就可以了,原来用的是4.2.13-snapshot,依赖的是canal-parse-1.0.20。

    原回答者GitHub用户tmriver

    2023-06-21 17:37:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载