我需要在enc_id
中允許NULL,但是如果值不爲空,我需要這些值是唯一的。這裏是我的模型:嘗試添加另一個實例時Django無法插入重複的鍵值NULL
class Intake(models.Model):
id = models.AutoField(primary_key=True)
enc_id = models.IntegerField(blank=True, null=True, unique=True)
enc_date = models.DateField(null=True)
enrollment = models.ForeignKey('Enrollment')
錯誤沒有enc_id
:
django.db.utils.IntegrityError: ('23000', "[23000] [FreeTDS][SQL Server]Violation of UNIQUE KEY constraint 'UQ__caseload__E136D21F4222D4EF'. Cannot insert duplicate key in object 'dbo.caseload_intake'. The duplicate key value is (<NULL>). (2627) (SQLExecDirectW)")
據我讀過(包括this和幾個解決Django的問題),其blank=True, null=True, unique=True
應讓我有重複的空值,但沒有去。我已經重新創建了我的數據庫,以防萬一,並且還會引發完整性錯誤。
我正在運行Django 1.10和MS SQL Server 10.任何想法?
您在列上有唯一的索引。這意味着你不能有多於1個null。這就是它的工作原理。這沒有「解決辦法」。對於你有多個NULL行,你將不得不刪除唯一的索引。 –