У меня есть таблица с несколькими столбцами, составляющими первичный ключ. Характер хранимых данных позволяет некоторым из этих полей иметь значения 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;
Однако, когда я запускаю describe test, он выглядит следующим образом:
|| *Field* || *Type* || *Null* || *Key* || *Default* || *Extra*
|| Field1 || smallint(5) unsigned || NO || PRI || ||
|| Field2 || decimal(5,2) unsigned || NO || PRI || 0.00 ||
И я получаю сообщение об ошибке при вставке значения NULL.
Столбец 'Field2' не может быть null
Это потому, что поле, которое является частью первичного ключа, не может быть нулевым? Каковы мои альтернативы, кроме использования, скажем, "0" для NULL?