【 使用环境 】生产环境
【 OB or 其他组件 】oceanbase
【 使用版本 】4.2.2.0-CE
【问题描述】
表结构:
CREATE TABLE sale_trade_detail
(
id
int(10) unsigned NOT NULL AUTO_INCREMENT,
if_valid
tinyint(1) DEFAULT ‘1’ COMMENT ‘是否有效’,
invalid_reason
varchar(50) DEFAULT NULL COMMENT ‘失效原因’,
plat_code
enum(‘其他’,‘shopee’,‘aliexpress’,‘amazon’,‘lazada’,‘tiktok’,‘mercado’,‘walmart’,‘wish’,‘ebay’,‘ebay虚拟仓’,‘shopee_cnsc’,‘amazonMCF’,‘joom’,‘fyndiq’,‘shopify’,‘coupang’,‘temu’,‘pinduoduo’,‘shein自营’,‘shein商城’,‘miravia’,‘AE全托管’,‘AE半托管’,‘AE自营’,‘daraz’,‘ozon’,‘Wildberries’) DEFAULT NULL COMMENT ‘平台代码’,
trade_date
date DEFAULT NULL COMMENT ‘交易日期’,
PRIMARY KEY (id
),
) AUTO_INCREMENT = 2219988 AUTO_INCREMENT_MODE = ‘ORDER’ DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = ‘zstd_1.3.8’ REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0 TABLEGROUP = ‘prod’ ;
字段platCode是个枚举字段。
查询结果出现了一列不再枚举范围的数据
正常使用insert、update语句修改platCode,如果不在上述枚举范围,都会报错:
只有这行数据绕过了platCode的枚举检查。
这行数据是从rdsMysql 通过dts同步过来的。
查看源库这行数据,是有正常值’shopee’ 的。
怀疑是在转储或者合并期间丢失了数据或者执行ddl的时候丢失了数据
期间有执行过修改platCode枚举范围的ddl语句