我可以让一个 MySQL 列可以为空并且是唯一的。如果用户想要提供,我有一个存储用户 Email_id 的表,否则它将是(null)。我在其他一些问题中读到,我可以使用默认 NULL 创建一个唯一字段。但是创建表时出现此错误
#1067 - Invalid default value for 'email' (i make it only for test purpose)
主表是用 larave 模式构建器类生成的
$table->text('email')->nullable()->unique(); (no default added)
在数据库中
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| email_id | varchar(200) | YES | UNI | NULL | |
现在错误是
Duplicate entry '' for key 'users_email_id_unique' (when inserting email with empty string)
现在的问题是如何处理一个唯一且可以一起为空的 varchar 字段。