У меня есть таблица с несколькими столбцами, составляющими первичный ключ. Характер хранимых данных позволяет некоторым из этих полей иметь значения 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
?