当表元缓存仍然可用且实际表元发生变化时,如何避免“未知列”异常?

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'sex' in 'field list'

1.正常删除seata_account_tbl(id、user_id、money、sex)中的部分数据

2.现在,表meta有4列,并设置在缓存中

3.删除成功

4.删除数据库中的1列(例如:删除性别列)

5.再次删除seata_account_tbl中的一些数据

6.尝试在缓存中查找表元(缓存中的表元有4列)

7.从seata_account_tbl执行select id,user_id,money,sex(实际上,sex列已经删除)

8.出现了“不知道专栏性别”的例外情况。

环境信息

JDK version : OS : Others:

原提问者GitHub用户l81893521

展开
收起
学习娃 2023-06-14 16:43:34 55 分享 版权
1 条回答
写回答
取消 提交回答
  • 在这种情况下,我们需要考虑在业务未中断时更改数据库的表结构是否合适,以及如何在不停止系统的情况下更改表结构以快速使表缓存无效。

    原回答者GitHub用户slievrly

    2023-06-14 17:21:47
    赞同 展开评论
问答标签:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

还有其他疑问?
咨询AI助理