[英]How to create a unique index in mysql using a date that can be null
我的表上有一個唯一索引,該唯一索引位於所有4列上。
firstname VARCHAR NOT NULL
lastname VARCHAR NOT NULL
dateofbirth DATE NULL
reference VARCHAR NULL
從我讀到的(和最近發現的)來看,mysql不會對具有NULL值的列強制執行唯一性。
在我的情況下,名字和姓氏區域始終填充,但是dateofbirth和reference是可選的,默認情況下設置為null。
我已將參考列從NULL更改為NOT NULL的默認值”,但是如何在不實際將列類型更改為VARCHAR的情況下對出生日期執行相同的操作?
您可以為日期設置默認值:
ALTER TABLE tablename MODIFY dateofbirth DATE NOT NULL DEFAULT '0000-00-00';
這樣做會生成警告,您可以忽略該警告:
Data truncated for column 'dateofbirth' at row xyz
更改之后,以前為NULL
任何值現在都將設置為新的默認值。
或者,找到另一列,該列將始終被填充,並且可以區分姓氏和名字相同的兩個人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.