01-07-2011, 03:16 AM
NULL est plus une absence de valeur qu'autre chose. A ce titre, il doit être traité différemment dans les index (uniques), les contraintes ...
Tu n'utiliserais pas le moteur de tables Berkeley (BDB) ? D'après la doc, c'est le seul qui gère 'NULL' comme une valeur quelconque :
A UNIQUE index creates a constraint such that all values in the index must be distinct. An error occurs if you try to add a new row with a key value that matches an existing row. This constraint does not apply to NULL values except for the BDB storage engine. For other engines, a UNIQUE index permits multiple NULL values for columns that can contain NULL. If you specify a prefix value for a column in a UNIQUE index, the column values must be unique within the prefix.
J'ai le sentiment que le 2nd problème découle du 1er, mais si tu n'utilises pas BDB ça ne tient pas...
Tu n'utiliserais pas le moteur de tables Berkeley (BDB) ? D'après la doc, c'est le seul qui gère 'NULL' comme une valeur quelconque :
A UNIQUE index creates a constraint such that all values in the index must be distinct. An error occurs if you try to add a new row with a key value that matches an existing row. This constraint does not apply to NULL values except for the BDB storage engine. For other engines, a UNIQUE index permits multiple NULL values for columns that can contain NULL. If you specify a prefix value for a column in a UNIQUE index, the column values must be unique within the prefix.
J'ai le sentiment que le 2nd problème découle du 1er, mais si tu n'utilises pas BDB ça ne tient pas...