Reputation: 347
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 automatically fills the field record. So am I correct in saying this mean I can remove the "NOT NULL" constraint for my primary keys?
Upvotes: 17
Views: 9085
Reputation: 1
WE need not declare explicitly the column as not null because Primary key constraint makes the column NOT NULL. I have checked in Oracle.
Upvotes: 0
Reputation: 37354
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.
Upvotes: 0
Reputation: 20320
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.
Upvotes: 2
Reputation: 1074058
(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.
Upvotes: 21