Valor nulo en clave primaria de varias columnas

Tengo una tabla con varias columnas que forman la clave principal. La naturaleza de los datos almacenados permite que algunos de estos campos tenganNULL valores. He diseñado mi mesa como tal:

CREATE TABLE `test` (
    `Field1` SMALLINT(5) UNSIGNED NOT NULL,
    `Field2` DECIMAL(5,2) UNSIGNED NULL DEFAULT NULL,
    PRIMARY KEY (`Field1`, `Field2`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;

Sin embargo, cuando corrodescribe test se muestra así:

|| *Field* || *Type*                || *Null* || *Key* || *Default* || *Extra* 
|| Field1  || smallint(5) unsigned  || NO     || PRI   ||           ||         
|| Field2  || decimal(5,2) unsigned || NO     || PRI   || 0.00      ||         

Y sigo recibiendo un error al insertar unNULL valor.

La columna 'Campo2' no puede ser nula

¿Esto se debe a que un campo que forma parte de una clave principal no puede ser nulo? ¿Cuáles son mis alternativas además de usar, digamos, '0' paraNULL?

Respuestas a la pregunta(5)

Su respuesta a la pregunta