16

MySQL データベースの主キーに対して「NOT NULL」制約を宣言する必要がありますか? とにかく auto_increments し、フィールド レコードを自動的に埋めるため、主キーは NULL 値を持つことはできません。これは、主キーの「NOT NULL」制約を削除できるという意味で正しいでしょうか?

4

4 に答える 4

18

(質問にタグを付けたようにmysql。) MySQL では、明示的に行う必要はありません。マニュアルから:

APRIMARY 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 nullauto_incrementnot null

于 2012-05-05T15:03:26.227 に答える