主キーを構成するいくつかの列を持つテーブルがあります。格納されるデータの性質により、これらのフィールドの一部に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 にすることはできません
これは、主キーの一部であるフィールドを null にすることができないためですか? たとえば、「0」を使用する以外に、私の代替手段は何NULL
ですか?