Sql 如何在Django中创建一个唯一的忽略NULL的together约束?
Django如何使用其唯一索引处理NULL?有没有一种方法可以允许许多空行,同时对非空值强制唯一性Sql 如何在Django中创建一个唯一的忽略NULL的together约束?,sql,django,Sql,Django,Django如何使用其唯一索引处理NULL?有没有一种方法可以允许许多空行,同时对非空值强制唯一性 然后,同样的问题也会出现在一起。是否有一种方法将unique_强制在一起,但如果任何字段为NULL,则允许该行> P>我不确定MySQL,但是SQLite和PostgreSQL没有考虑 null >代码>值是相等的,所以你要寻找的行为实际上是默认的。 您可以自己验证这一点: class MyModel(models.Model): title = models.CharField(uniq
然后,同样的问题也会出现在一起。是否有一种方法将unique_强制在一起,但如果任何字段为NULL,则允许该行> P>我不确定MySQL,但是SQLite和PostgreSQL没有考虑<代码> null >代码>值是相等的,所以你要寻找的行为实际上是默认的。 您可以自己验证这一点:
class MyModel(models.Model):
title = models.CharField(unique=True, null=True, max_length=255)
>>> MyModel.objects.create()
<MyModel: MyModel object (1)>
>>> MyModel.objects.create()
<MyModel: MyModel object (2)>
请注意,在第二个示例中,标题
字段上没有唯一约束,只有两个字段上的唯一约束一起存在。可能重复的
class MyModel(models.Model):
title = models.CharField(null=True, max_length=255)
description = models.CharField(null=True, max_length=255)
class Meta:
unique_together = (('title', 'description'),)
>>> MyModel.objects.create(title='x')
<MyModel: MyModel object (1)>
>>> MyModel.objects.create(title='x')
<MyModel: MyModel object (2)>