At 08:49 AM 4/26/05, Jay Blanchard wrote:
[snip] http://dev.mysql.com/doc/mysql/en/silent-column-changes.html mentions that "Columns that are part of a PRIMARY KEY are made NOT NULL even if not declared that way. "
And http://dev.mysql.com/doc/mysql/en/create-table.html tells me that "A PRIMARY KEY is a unique KEY 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). "
Why is this? I actually do need NULL values (they really are not equal to '0', etc.), but also need this column as part of the PRIMARY key in an InnoDB table... It can't have anything to do with the 'uniqueness' of the data, since I can have a lot of 'zero'-values in the column, as long as the combination of columns in the PRIMARY key results in unique values. [/snip]
Since NULL is the absence of a value and PRIMARY keys must have a value a NULL column cannot be included as a portion of a PRIMARY key. AFAIK this is the case with every RDBMS out there. Asking the development team might get you a more informative response.
I'm not on dev team, but my understanding of RDMS theory is that retrieving data via PK will always return a single row from the table. Since NULL values are never considered equal to each other, allowing them in a column that is part of PK would bypass this expected behaviour.
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]