MySQL データベースの主キーに対して「NOT NULL」制約を宣言する必要がありますか? とにかく auto_increments し、フィールド レコードを自動的に埋めるため、主キーは NULL 値を持つことはできません。これは、主キーの「NOT NULL」制約を削除できるという意味で正しいでしょうか?
質問する
7721 次
4 に答える
18
(質問にタグを付けたようにmysql
。) MySQL では、明示的に行う必要はありません。マニュアルから:
A
PRIMARY KEY
は、すべてのキー列を として定義する必要がある一意のインデックスNOT NULL
です。それらが として明示的に宣言されていない場合NOT NULL
、MySQL はそれらを暗黙的に (そしてサイレントに) 宣言します。
もちろん、その必要がないからといって、明確にするためにそうしたくないというわけではありません。
于 2012-05-05T14:47:58.883 に答える
2
はい、いいえ 「Not null」を削除できますが、制約は削除されません。個人的にはそのままにしておきますが、外しても何の得にもなりません。
于 2012-05-05T14:56:25.307 に答える
0
主キー制約によって列が NOT NULL になるため、列を非 null として明示的に宣言する必要はありません。オラクルにチェックインしました。
于 2015-12-01T14:43:39.930 に答える
0
主キーには、NULL 可能な列を含めてはなりません。はチェック制約ではありません (デフォルトの制約です) ため、主キーの一部である列の定義から をauto_increment
削除することはできません。エンジンがこの制約を自動的に追加するため、mysql で主キーのテーブルを作成するときに入力する必要はありません。not null
auto_increment
not null
于 2012-05-05T15:03:26.227 に答える