首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL 8.0.27不接受django检查约束

问MySQL 8.0.27不接受django检查约束
EN

Stack Overflow用户
提问于 2022-04-19 13:28:58
回答 1查看 96关注 0票数 1

我见过一个2年前的相似问题,但是这个问题没有具体说明MySQL版本,也没有回答这个问题。

我使用django(2.2.28) 约束API创建了一个包含两个外键的模型,但是这两个外键不能同时存在,并且不能同时为null。这些约束如下所示:

代码语言:javascript
复制
CheckConstraint(check=Q(type='campaign', campaign__isnull=False), name='check_campaign_data'),
CheckConstraint(check=Q(type='trigger', trigger__isnull=False), name='check_trigger_data'),

类型指示模型将使用哪个外键。

但是,下面的警告出现在我的控制台上:

代码语言:javascript
复制
(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数据库并运行命令

代码语言:javascript
复制
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.27    |
+-----------+

如果这个版本的MySQL应该支持这个特性,为什么这个功能不能工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-28 16:09:32

我已经按照Bill的建议做了,并且看到检查约束实际上是创建的,即使在发出警告的情况下,也可以按预期的方式工作。为了忽略警告,我刚刚在我的settings.py中添加了以下内容:

代码语言:javascript
复制
SILENCED_SYSTEM_CHECKS = ["models.W027"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71925796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档