1. ホーム
  2. mysql

[解決済み] MySQLの外部キーの基本?

2023-02-25 20:46:28

質問

MySQL の外部キー構造の使用方法について、何か良い説明はありますか?

MySQL のドキュメント自体からではよくわかりません。今まで私は、外部キーのようなものを結合とプログラミングコードで扱ってきました。

そして質問の2つ目ですが、MySQLに内蔵されている外部キーを使うことで何か改善されることはあるのでしょうか?

どのように解決するのですか?

FOREIGN KEYS のように、データの整合性を確保するだけです。

これらは、効率という意味でクエリを改善するものではなく、いくつかの間違ったクエリを失敗させるだけです。

このような関係であれば

CREATE TABLE department (id INT NOT NULL)
CREATE TABLE employee (id INT NOT NULL, dept_id INT NOT NULL, FOREIGN KEY (dept_id) REFERENCES department(id))

を削除することはできません。 department がある場合は employee 's.

もしあなたが ON DELETE CASCADEFOREIGN KEY の定義に追加すると、参照している行は参照されている行と一緒に自動的に削除されます。

制約として FOREIGN KEY は実際にクエリを少し遅くします。

参照されているテーブルから削除するとき、または参照されているテーブルに挿入するときに、余分なチェックを実行する必要があります。