将火山引擎版 MySQL 8.0 同步数据到火山引擎版 5.7 遇到报错 Error 1054 (42S22): Unknown column 'my_row_id' in 'field list' 怎么办?
可能原因:由于火山引擎版 MySQL 8.0 会自动为无主键表添加主键 my_row_id
,然而,火山引擎版 MySQL 5.7 没有此主键列,因此,当从火山引擎版 MySQL 8.0 同步数据至火山引擎版 MySQL 5.7 时,可能会出现错误信息 Error 1054 (42S22): Unknown column 'my_row_id' in 'field list'
;当从火山引擎版 MySQL 5.7 同步数据至火山引擎版 MySQL 8.0 时,可能会出现报错 Error 1054 (42S22): Unk``nown column 'byte_rds_ai_uk_row_id' in 'field list'
。
解决方案:在创建火山引擎版 8.0 同步数据到火山引擎版 5.7 任务或创建火山引擎版 5.7 同步数据到火山引擎版 8.0 任务时,您需要开启 ETL 并配置对应的 ETL 过滤函数过滤隐藏主键,ETL 过滤函数如下所示:
(defn main [] (case (car (dts/pk)) "my_row_id" (dts/drop-column "my_row_id") "byte_rds_ai_uk_row_id" (dts/drop-column "byte_rds_ai_uk_row_id")))
说明
关于 ETL 的更多信息,请参见 ETL 简介。