sql >> データベース >  >> RDS >> Database

SQLで列を一意にする方法は?

    問題:

    データベース内の特定のテーブルで特定の列を一意にする必要があります。

    例:

    列を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 )括弧内。


    1. ClusterControl CMON HA for Distributed Database High Availability-パート2(GUIアクセスセットアップ)

    2. IRIFieldShieldでCassandraをマスクする方法

    3. アップグレードの問題中に破損したSQLデータベースを修正

    4. SQLでの一時テーブルの作成