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
?