• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:外部キーについて、親に挿入した値が子に反映されません)

外部キーについて、親に挿入した値が子に反映されません

このQ&Aのポイント
  • MySQLとPHPを勉強中の方から、外部キーの設定に関して質問があります。会員情報テーブルとプロフィールテーブルを持つデータベースで、親に挿入した値が子に反映されない問題が発生しています。
  • 質問者はMySQLクライアントのバージョンが4.0.25で、PHPのバージョンは5を使用しています。外部キーの設定はできており、更新や削除の際にはカスケードが正しく動作しています。
  • ただし、親テーブルには会員情報が正常に登録される一方で、子テーブルには何も反映されていないという状況です。質問者はPHPからクエリを送信してデータの挿入を行っていますが、原因がわからず困っています。アドバイスをお待ちしています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

質問内容が分かりにくいのですが。。。 >外部キーの設定はできたのですが、親に挿入した値が子に反映されません 子の格納は行っているのですよね? 外部キー制約で、親の主キー更新時や親の削除時に、RDBMS側で子の更新や削除は行ってくれますが、子の追加はユーザ側で行う必要がありますけど、勘違いはないでしょうか?

ataru2
質問者

お礼

ご回答ありがとうございました。 ご指摘の通り、私の勘違いのようです、すみません。 連動して動いてくれる便利なものだと勘違いしておりました。 どうもありがとうございました!

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

・ chukenkenkou様の言われるように、子テーブルにレコードを追加する必要がありそうです。 ・ 会員情報テーブルとプロフィールテーブルは別のテーブルです。   両者のレコードには、1対1の関係がありそうですが、たとえ外部キーの設定をしても異なるテーブルですから、別々にレコードを追加することが必要です。 >>> その後、whereで同じIDを持つ行 このとき、where句はfalseを返しているはずです。つまり何も実行されません。

ataru2
質問者

お礼

ご回答ありがとうございました。 偏った独学のため基礎的な部分から勘違いしていたようです。 どうもありがとうございました。 子にレコードを挿入してから動作させてみます。

関連するQ&A