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
WE need not declare explicitly the column as not null because Primary key constraint makes the column NOT NULL. I have checked in Oracle.
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.
(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 asNOT NULL
. If they are not explicitly declared asNOT 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.
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.