我见过一个2年前的相似问题,但是这个问题没有具体说明MySQL版本,也没有回答这个问题。
我使用django(2.2.28) 约束API创建了一个包含两个外键的模型,但是这两个外键不能同时存在,并且不能同时为null。这些约束如下所示:
CheckConstraint(check=Q(type='campaign', campaign__isnull=False), name='check_campaign_data'),
CheckConstraint(check=Q(type='trigger', trigger__isnull=False), name='check_trigger_data'),类型指示模型将使用哪个外键。
但是,下面的警告出现在我的控制台上:
(models.W027) MySQL does not support check constraints.
HINT: A constraint won't be created. Silence this warning if you don't care about it.我已经看到,MySQL 8.0.16或更高版本现在支持这一点。
我登录到MySQL数据库并运行命令
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.27 |
+-----------+如果这个版本的MySQL应该支持这个特性,为什么这个功能不能工作呢?
发布于 2022-04-28 16:09:32
我已经按照Bill的建议做了,并且看到检查约束实际上是创建的,即使在发出警告的情况下,也可以按预期的方式工作。为了忽略警告,我刚刚在我的settings.py中添加了以下内容:
SILENCED_SYSTEM_CHECKS = ["models.W027"]https://stackoverflow.com/questions/71925796
复制相似问题