簡體   English   中英

如何使用可以為空的日期在mysql中創建唯一索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM