x INT
データベース レベルの制限を作成して、既に存在する 0 より大きい値を持つ列を持つ行を作成できないようにすることはできますか?
CONSTRAINT
この目的のために使用する方法はありますか?
x INT
データベース レベルの制限を作成して、既に存在する 0 より大きい値を持つ列を持つ行を作成できないようにすることはできますか?
CONSTRAINT
この目的のために使用する方法はありますか?
考えられる解決策は、次のことです。
CREATE TABLE test
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
myfield INT,
CONSTRAINT check_myfield UNIQUE ( myfield )
);
現在、列myfield
は NULL である可能性があります。したがって、次の操作を行うと、合計で 0 個のエラーが発生します。
INSERT INTO `test` VALUES ( '', '1' );
INSERT INTO `test` VALUES ( '', '0' );
INSERT INTO `test` VALUES ( '', '5' );
INSERT INTO `test` VALUES ( '', '7' );
etc, you get the point...
すべての行の列には一意の値myfield
がありますが、この特定の列の値NULL
がほぼ正確に必要な行を作成する可能性はまだあります。0 を超えるすべての値が一意である必要がありました。これはすべて ですNULL
。このソリューションの優れた点は、より「プロフェッショナル」に感じられ、不必要なロジックがないことです。