TiDB中更新虚拟列引用列后,虚拟列没有更新

【概述】 场景 + 问题概述
在做mysql与tidb兼容性测试的时候,表中有虚拟列C,虚拟列C引用虚拟列B,虚拟列B引用字段A,update字段A时,TiDB中虚拟列C并没有更新,但是Mysql中是更新了的。

【背景】 做过哪些操作
我在mysql与tidb中分别做了以下测试:
TIDB:


Mysql:

【问题】 当前遇到的问题
我在测试的时候还发现,如果没有c这个虚拟列,也就是说address直接引用a字段中的值,再去更新时是正常的。

是我使用不当还是bug?

【TiDB 版本】
V5.4.0

在6.1试了下复现了,可能是bug吧,目前虚拟列还是实验特性,不建议在生产环境中使用。 https://docs.pingcap.com/zh/tidb/stable/generated-columns#生成列的应用

应该是TiDB的一个BUG,不过如果TiDB不是作为写入端使用,而是作为DM同步的下游,倒是可以考虑在TiDB侧直接把该字段改成普通的varchar或者json类型。

测试了下,虚拟列的值也会写入到BINLOG中的

mark下,我们mysql里面还真有用虚拟列的

我们mysql也有用虚拟列的,不过目前tidb里json都还是实验特性。

不过虚拟列这东西,兼容性确实不太好,我们下游大数据cdh也同步不了虚拟列

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。