NULL-Wert im mehrspaltigen Primärschlüssel

Ich habe eine Tabelle mit mehreren Spalten, die den Primärschlüssel bilden. Die Art der gespeicherten Daten ermöglicht es, einige dieser Felder zu habenNULL Werte. Ich habe meinen Tisch so gestaltet:

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;

Wenn ich jedoch rennedescribe test es zeigt wie folgt:

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

Und ich bekomme immer wieder eine Fehlermeldung beim Einfügen einesNULL Wert.

Die Spalte 'Feld2' darf nicht null sein

Liegt das daran, dass ein Feld, das Teil eines Primärschlüssels ist, nicht null sein kann? Was sind meine Alternativen neben der Verwendung von '0' fürNULL?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage