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

MySQL追加外部キー

    外部キーは、データベースの関係を確立し、参照整合性を維持するのに役立ちます。これらは、あるテーブルの1つ以上の列を別のテーブルにリンクするのに役立ちます。 MySQLで外部キーを追加する方法は次のとおりです。

    MySQLに外部キーを追加する方法

    MySQLで外部キーを追加する手順は次のとおりです。 SQLでCREATETABLEまたはALTERTABLEステートメントを使用して外部キー制約を追加できます。

    MySQLで外部キーを作成するための構文は次のとおりです。

    ALTERTABLEの使用

    ALTER TABLE table_name 
    ADD CONSTRAINT constraint_name 
    FOREIGN KEY (foreign_key_name,...) 
    REFERENCES parent_table(column_name,...);

    上記のクエリでは、 table_name 外部キーを追加するテーブルです。 constraint_name 外部キー制約の名前です。 foreign_key_name、… 外部キー列のリストです。

    parent_table は、foreign_keyが参照するテーブルであり、その後にそのテーブルの列名のリストが続きます

    ボーナス読み取り:MySQL ALTER TABLE Column

    CREATETABLEの使用

    CREATE TABLE table_name(
        column_name column_description,
        CONSTRAINT constraint_name
        FOREIGN KEY (foreign_key_name,...) 
            REFERENCES parent_table(column_name,...)
    )

    上記のクエリでは、 table_name 外部キーを追加するテーブルです。 constraint_name 外部キー制約の名前です。 foreign_key_name、… 外部キー列のリストです。

    parent_table は、foreign_keyが参照するテーブルであり、その後にそのテーブルの列名のリストが続きます。

    注意 、ALTER TABLEでは、ADD CONSTRAINTを使用する必要がありますが、CREATE TABLEでは、CONSTRAINTキーワードのみを使用する必要があります。

    ボーナス読み取り:MySQL DROPFOREIGNKEY制約

    MySQL ADDFOREIGNKEYの例

    次のテーブルがあるとします。

    2つのテーブル(カテゴリ)を作成しましょう および注文 )そして注文に外部キー制約を追加します 、 idを参照 カテゴリの列 テーブル。

    mysql> create table categories(id int auto_increment primary key,name varchar(255));
    
    mysql> create table orders(id int auto_increment primary key,category_id int,
     CONSTRAINT fk_cat 
     FOREIGN KEY (category_id) 
     REFERENCES categories(id));
    
    mysql> describe orders;
    +-------------+---------+------+-----+---------+----------------+
    | Field       | Type    | Null | Key | Default | Extra          |
    +-------------+---------+------+-----+---------+----------------+
    | id          | int(11) | NO   | PRI | NULL    | auto_increment |
    | category_id | int(11) | YES  | MUL | NULL    |                |
    +-------------+---------+------+-----+---------+----------------+
    

    ボーナス読み取り:MySQL DROP UNIQUE CONSTRAINT

    ALTERTABLEステートメントを使用した同じ例を見てみましょう。

    mysql> create table orders(id int auto_increment primary key,category_id int);
    
    mysql> create table categories(id int auto_increment primary key,name varchar(255));
    
    mysql> ALTER TABLE orders
         ADD CONSTRAINT fk_cat
         FOREIGN KEY (category_id)
         REFERENCES categories(id);
    
    mysql> describe orders;
    +-------------+---------+------+-----+---------+----------------+
    | Field       | Type    | Null | Key | Default | Extra          |
    +-------------+---------+------+-----+---------+----------------+
    | id          | int(11) | NO   | PRI | NULL    | auto_increment |
    | category_id | int(11) | YES  | MUL | NULL    |                |
    +-------------+---------+------+-----+---------+----------------+
    

    Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. フォロワークラスター–SQLとNoSQLの展開を同期するための3つの主要なユースケース

    2. SQLでのドロップとトランケート

    3. WindowsでPerlのDBIモジュールを使用してMSSQLデータベースに接続するにはどうすればよいですか?

    4. CentOS7でNetdataを使用してMySQL/MariaDBデータベースを監視する方法