MySQLでのカスケード更新の実装方法は?

MySQLは、外部キー制約とON UPDATE CASCADEを使用して、カスケード更新を実現できます。

最初に、テーブル作成時に外部キー制約を設定し、ON UPDATE CASCADEを設定する必要があります。例えば、ordersとcustomersという2つのテーブルがあるとします。ordersテーブルのcustomer_id列は、customersテーブルのid列に関連している外部キーです。

CREATE TABLE customers (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

CREATE TABLE orders (
    id INT PRIMARY KEY,
    order_number VARCHAR(50),
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(id) ON UPDATE CASCADE
);

上記の例では、外部キー制約がcustomersテーブルのid値が更新されるときにordersテーブルのcustomer_id値も同時に更新されることを指定しています。

例えば、customersテーブル内でidが1のレコードを更新したい場合、同時にordersテーブル内のcustomer_idが1のレコードも更新するには、以下のSQL文を実行することができます。

UPDATE customers SET id = 2 WHERE id = 1;

したがって、ordersテーブルのcustomer_idが1のレコードのcustomer_idの値も自動的に2に更新されます。

注意:連鎖更新を使用すると、予期しない結果やパフォーマンスの問題が発生する可能性があるため、注意して使用してください。

bannerAds