【发布时间】:2014-03-20 18:40:27
【问题描述】:
我的 MySQL 数据库有一个小而烦人的问题。
我有一个字段 StudentID 对于每个用户来说应该是唯一的,但不是强制性的。
因此,当用户注册并且不想添加studentID 时 - 他将该字段留空。但是,当第二个用户将该字段留空时 - 它会将其视为重复值。
有什么方法可以解决这个问题吗?我尝试了下面发布的几种方法:
Mysql 错误:1062 - 键的重复条目“” 'users_studentid_unique'
第一次(作品):
insert into `users` (`username`, `name`, `email`, `studentid`,
`password`, `updated_at`, `created_at`)
values ('aaaaaa263', 'aaaaaa', 'aaaaaa23d@gmail.com','' ,
'yZPeKRV0C0xbr/QCI1w/Y.0Z1qSGnJeivgP71epaHpT139g65hAf2',
'2014-03-20 18:16:54', '2014-03-20 18:16:54')
第二次(学生ID重复值错误):
insert into `users` (`username`, `name`, `email`, `studentid`,
`password`, `updated_at`, `created_at`)
values ('aaaaaa263', 'aaaaaa', 'aaaaaa23d@gmail.com','' ,
'yZPeKRV0C0xbr/QCI1w/Y.0Z1qSGnJeivgP71epaHpT139g65hAf2',
'2014-03-20 18:16:54', '2014-03-20 18:16:54')
试过了:
检查数据库中studentid 表上的NULL 值。
尝试使用这些值而不是空白字段插入数据库:
NULL
null
UNDEFINED
仍然有同样的问题, - 有没有人知道如何解决这个问题?
【问题讨论】:
-
多个
NULL值不会违反UNIQUE约束。但是,在NOT NULL列上指定NULL值可能会回退到其DEFAULT值:您的列是否可以为空?