MySQLWorkbenchを使用してテーブル間に外部キーを作成しようとしています。しかし、別のテーブルの別のフィールドにマップするために、チェックボックスをオンにしてフィールドを選択できない理由がわかりません。両方のフィールドが同じタイプ(および他の条件??)である必要があるかもしれません。では、外部キーを使用して関係を作成するための基準と、MySQLWorkbenchでそれを行う方法を教えてください。
5 に答える
私もこの問題を抱えていました。関係を作成できなかったのは、あなたが言うように、タイプがまったく同じではなかったからです。unsigned int を主キーとして、signed int を外部キーとして使用していたため、ソフトウェアでは関係を作成できませんでした。ソフトウェアが警告を表示したり、そのボックスをチェックすることに異議があることを強調する何らかのユーザー フィードバックを表示したりできればよかったのにと思います。
私は MySQL Workbench のユーザーではありませんが、最初に外部キーをサポートするストレージ エンジンを使用していることを確認してください。(例: InnoDB)
外部キー関係に必要な要件については、MySQL のドキュメントを参照してください。
同じ問題がありました。回避策を見つけました:
外部キー制約の名前を入力し、参照されるテーブルを選択したら、列名を選択せずに[次へ] をクリックします。
このステップでは、新しい制約の create sql スクリプトが表示されます。手動で編集: 参照される列名と fk の列名を入力します。次に、[完了] をクリックします。スクリプトが実行されます。再確認のために、テーブルの変更ウィンドウをもう一度開いてみると、外部キー タブで列のチェックボックスがオンになっていることがわかります。
MySql Workbench でも同じ問題に直面しています。主キーとして 1 つの char(5) (表 1) と外部キーとして別の char(5) (表 2) があります。しかし、MySql Workbench では関係を作成できません。私はINNODBを使用しています。
EER ダイアグラム エディターでテーブルを編集すると、[外部キー] タブが表示されます。そこにテーブル間の外部キーを設定できます。(ワークベンチ 5.2.36)