実際、ここで意味があるのはその理由です:
テーブルでは、実際には任意の列を主キーとして設定できます。したがって、整数、倍精度浮動小数点数、文字列などになります。現在では、ほとんどの場合、整数または最近では文字列をテーブルの主キーとして使用しています。
外部キーは別のテーブルの主キーを指しているため、外部キーのデータ型を指定する必要があるのはこのためです。そして、それは明らかに同じデータ型である必要があります。
編集:
ご覧のとおり、SQLの実装はこの場合は緩慢です。互換性のある型(INTとBIG INT、FloatまたはDECIMALとDOUBLE)を許可しますが、自己責任で 。以下の例でわかるように。
ただし、SQLの基準では、両方のデータ型が同じである必要があると指定されています。データ型が文字の場合は同じ長さである必要があり、整数の場合は同じサイズである必要があります。 両方である必要があります 署名済みまたは両方とも署名なし 。
2003年に発行されたMySQLの本の章をここで自分で見ることができます。
これがあなたの質問に答えることを願っています。