Значение NULL в первичный ключ с несколькими столбцами

У меня есть таблица с несколькими столбцами, составляющими первичный ключ. Характер хранимых данных позволяет некоторым из этих полей иметь значения NULL. Я разработал свою таблицу следующим образом:

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;

Однако, когда я запускаю описать тест, она показывает следующее:

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

И я продолжаю получать сообщение об ошибке при вставке значения NULL.

Столбец «Поле2» не может быть нулевым.

Причина в том, что поле, являющееся частью первичного ключа, не может быть нулевым? Каковы мои альтернативы, кроме использования, скажем, «0» для NULL?

56
задан Jaap 22 August 2014 в 14:47
поделиться