製品コードを保存するフィールドがあります。コードは一意ですが、一部の製品にはコードがありません。コードはプロバイダーコードなので、発明することはできません。
MySQLでこの種の制約は可能ですか?
私はストアドプロシージャとトリガーを使用する初心者なので、ソリューションにこれらのいずれかが含まれる場合は、しばらくお待ちください。
更新:列はNULLではありません。それが私がこれを行うことができなかった理由です。
はい、これを行うことができます。 MySQLリファレンス(バージョン5.5) を参照してください。
UNIQUEインデックスは、インデックス内のすべての値が異なる必要があるような制約を作成します。既存の行と一致するキー値を持つ新しい行を追加しようとすると、エラーが発生します。すべてのエンジンで、UNIQUEインデックスはNULLを含むことができる列に複数のNULL値を許可します。
はい、商品コード列をNULL可能にした場合(NOT NULL
)、一意のキーはNULL
製品コードを持つ複数の行を許可します。
MySQLでは、一意の列に複数の行がNULL
の値を持つことを引き続き許可しています。