场景描述
连接RDS MySQL执行SQL时,出现如下报错:
ERROR[1412]:Table definition has changed, please retry transaction``
原因分析
启动一致性快照事务后,其他会话(session)执行DDL语句导致。问题复现步骤:
- 会话1启动一致性快照事务。

- 会话2执行DDL操作,修改表结构。

- 会话1执行普通的查询语句。

也可以通过Binlog或者审计日志,分析业务侧是否有同一个表DDL和一致性快照事务一起执行的情况。
解决方案
若经排查,是由上述原因引起的报错,需要业务侧避免同一个表的DDL语句和一致性快照事务同时执行。