MySQL 列を一緒に nullable で一意にすることはできますか? ユーザーが提供したい場合は、ユーザーの 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 フィールドを一緒に処理する方法です。