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

2つの異なるテーブルで同じ外部キー制約を使用できますか?

    列があり、外部キー(FK)があり、制約があります。

    他のテーブルに関係なく、テーブルに列名を付けることができます。

    FKは、参照テーブルと列セット、および参照テーブルと列セットです。すべての名前が一緒になってFKを識別します。これはデータベースに関する概念的なことです。

    制約であるFK制約は、その名前がデータベース全体で一意でなければならないものです。関連するFK、つまり宣言に記載されているFKがあり、それを強制します。同じFKを適用するテーブルに複数のFK制約を含めることができます。

    DBMSには、FK制約の自動一意名があります。たとえば、名前の部分と番号の部分で、制約はその名前のテーブルのFK制約の番号です。実際には、同じ名前のないFK制約定義テキストを、それぞれ異なるFK制約に対して、1つのテーブルおよび複数のテーブルに複数回持つことができます。 (特定のテーブル内のものは同じFKを適用します。)

    それらに名前を付けるときのために、一意の命名スキームが必要です。参照および参照されるテーブル名を含める必要があり、必要に応じて列名を区別する必要があります。

    紛らわしいことに、FK制約を意味するときにFKと言います。

    「2つの異なるテーブルで同じ外部キーです」と言うと、用語の誤用になります。関連する2つの異なるFKと、対応するFK制約があります。 「両方のFK制約で同じ参照列と参照テーブルと列である」または「両方のテーブル宣言のFK制約宣言で同じテキストを参照している」という意味かもしれません。ただし、FK制約名は一意である必要があります。

    「どちらの場合も内部ユーザーを参照しています」と言うと、参照されている列のタイプやテーブルが両方のFK制約で同じであることを確認しています。ただし、FKごとに異なるFK制約があります。



    1. GoogleCloudDataflowユーザー定義のMySQLソース

    2. インデックスを含むMySQLテーブルをコピーします

    3. macOSでのmy.cnfファイルの場所

    4. 複雑なSQLクエリをSQLAlchemyに変換します