Django在mysql模式下生成数据库表时,报5031

【 使用环境 】测试环境
【 OB 】
【 使用版本 】4.2.1
【问题描述】Django执行数据库生成时,报5031,排查有问题的SQL为


【复现路径】执行该同时添加列和外键的SQL时,出现的问题
【附件及日志】

ERROR 5031 (HY000) : Column not found

  • OceanBase 错误码:5031
  • 错误原因:列不存在。
  • 解决方式:排查操作对象涉及的列是否已存在

列就是在操作对象的表里不存在,如上图的SQL所示,在ADD COLUMN的同时增加设置为外键

目前不支持在同一条ddl语句中,新加的约束引用本ddl内新加的列。我们后续会解决这个问题,目前建议拆分成两条语句执行。