我有一个有几列构成主键的表。存储的数据的性质允许这些字段中的一些具有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值时,我不断得到一个错误。
Column ‘Field2’ cannot be null
这是因为作为主键一部分的字段不能为null?除了使用,例如,’0’为NULL,我的替代品是什么?