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

WHEREを使用できるのに、なぜ外部キーを使用する必要があるのですか?

    クエリに厳密に必要なわけではありません。本当です。それはいくつかの理由で存在します:

    1. 何も指さないものを挿入しないようにするためのテーブルの制約として;
    2. オプティマイザーの手がかりとして。および
    3. 歴史的な理由から、もっと必要とされていました。

    (1)はおそらく3つの重要なものの1つです。これは、参照整合性 と呼ばれます。 。これは、外部キーに値がある場合、その値を親テーブルの主キーとして持つ対応するレコードがあることを意味します。

    とはいえ、すべてのデータベースが参照整合性をサポートしているわけではなく(MySQL / MyISAMテーブルなど)、必ずしもそれを強制するわけではありません(パフォーマンス上の理由から)。



    1. MySQLでのテーブル名の最大長

    2. PostgresスキーマのSQLAlchemyサポート

    3. promiseを使用してnode.jsのMySQL戻り値を処理します

    4. MariaDBでのSHOWCHARACTERSETのしくみ