href="/hc/ja/articles/217791848-%E5%A4%96%E9%83%A8%E3%82%AD%E3%83%BC%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%8C%E3%81%86%E3%81%BE%E3%81%8F%E3%81%84%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93-%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B-">外部キーの作成がうまくいきません。<strong>データ&グリッド</strong>で、<strong>プライマリーキー警告メッセージを表示</strong>のチェックをはずします。<strong>環境設定</strong>を選択し、<strong>グリッド</strong>タブで、<strong>プライマリーキー警告メッセージを表示</strong>のチェックをはずします。<strong>環境設定</strong>を選択し、<strong>基本</strong>タブで、<strong>もしテーブル内でプライマリキーが見つからなければ警告する</strong>のチェックをはずします。<p>Navicatがこの警告を出す理由は、プライマリーキーを持たないテーブルを更新する時に予期しない結果と取得する可能性があるためです。以下のサンプルを見てみましょう。<p>このテーブルはプライマリーキーを持ちません。<p>これは正しく実行され、最初のレコードのageの値を変更します。44のレコードが2つできます。<p>このステートメントは、1番目と3番目のレコードのageの値を55に変更します。<p>このテーブルのデータは、現在、1番目と3番目のレコードが全く同じ値を持つという一貫性のない状態であり、この2つを区別する方法は全くないことに気が付くはずです。このようなことが発生するのは、テーブルが第一正規形ではない、つまり、テーブルのレコードを一意に識別するために使用できるフィールドやフィールドグループがテーブルに存在しないためです。<p>これが、Navicatの古いバージョンがテーブル更新に対してプライマリーキーを必要としていた理由です。<p>これらのステートメントは、データの矛盾を引き起こしません。<p>本件について多くのお問い合わせをいただきましたので、現在、Navicatは警告を表示するだけで、プライマリーキーを持たないテーブルでも更新できるように変更されています。rel="nofollow">外部キーをうまく作成することができません。rel="nofollow">データベースを消してしまいました。CyberTech社の製品です。CyberTech社製品を取り扱う総販売代理店です。