問題:
データベース内の特定のテーブルで特定の列を一意にする必要があります。
例:
列をname
にします テーブル内で一意product
。以下のクエリは、それを行う1つの方法を示しています。
ソリューション1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
ディスカッション:
この例では、特定の列(列name
)は、定義列の最後に句UNIQUEを追加することで一意になりました(name VARCHAR(100) UNIQUE
)。この新しいテーブル(この例では:product
)には列が含まれます(この例ではname
)一意の値を行に格納します。
ソリューション2:
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
ディスカッション:
この例では、テーブルproduct
もう存在している。このテーブルを変更し、列name
に一意の制約を追加します 。これは、ALTER TABLE
を使用することで可能になります 句。最初にALTERTABLEと記述し、次にテーブルの名前をリストします(この例ではproduct
)、次に句ADD CONSTRAINT
を追加します 一意の制約の名前を使用します(この例では、UQ_product_name
)。この後に、column / columnsを含むUNIQUEキーワードが続きます(この例では、column:name
)括弧内。
複数列の一意の制約を作成することもできます。方法は次のとおりです。
ソリューション3:
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
ディスカッション:
この例では、ALTER TABLE
を使用してテーブル製品を変更しています。 句と句ADDCONSTRAINTは、一意の制約の名前を使用します(この例ではUQ_product_name_producer
)に続いてUNIQUE
列のリストを含むキーワード(この例では、2つの列があります:name
およびproducer
)括弧内。