MySQL - Are “NOT NULL” constraints needed for primary keys?

前端 未结 4 581
轮回少年
轮回少年 2021-01-04 04:15

is it necessary to declare \"NOT NULL\" constraints for primary keys in the MySQL database? A primary key cannot have NULL values because it auto_increments anyway and auto

相关标签:
4条回答
  • 2021-01-04 04:21

    WE need not declare explicitly the column as not null because Primary key constraint makes the column NOT NULL. I have checked in Oracle.

    0 讨论(0)
  • 2021-01-04 04:25

    Primary key must not include nullable columns. auto_increment is not a check constraint, (it is rather a default constraint) , so you cannot remove not null from definition of the column that is part of primary key regardless of presence of auto_increment. You don't have to type not null while creating the table for primary key in mysql, because the engine adds this constraint automatically.

    0 讨论(0)
  • 2021-01-04 04:39

    (As you've tagged your question mysql.) In MySQL, you don't have to do it explicitly. From the manual:

    A PRIMARY KEY is a unique index where all key columns must be defined as NOT NULL. If they are not explicitly declared as NOT NULL, MySQL declares them so implicitly (and silently).

    Of course, just because you don't have to doesn't mean you might not want to for clarity, etc.

    0 讨论(0)
  • 2021-01-04 04:43

    Yes and no You can remove "Not null", that won't remove the constraint though. Personally I'd leave them in, you gain nothing worthwhile from taking them out.

    0 讨论(0)
提交回复
热议问题