問題:
データベース内の特定のテーブルで特定の列を一意にする必要があります。
例:
列を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 )括弧内。