※ ChatGPTを利用し、要約された質問です(原文:MySQL5.1 で外部キーの動作を検証する方法?)
MySQL5.1で外部キーの動作を検証する方法
MySQL5.1 で外部キーの動作を検証する方法?
お世話になります。
MySQL 5.1 で勉強中の初心者です。
外部キーの設定が出来ているらしいのですが、親テーブルを更新しても子テーブルに反映されません。
一応
http://oshiete1.goo.ne.jp/qa3828231.html
も見ましたが、MySQLのバージョン(4.0)が違うのが気になります。
持っている教科書には ENGINE=InnoDB の記述がありません。
自分のコード:
----------
親
----------
mysql> create table tes1 (
t1_col1 int (4),
t1_col2 varchar (10),
primary key (t1_col1)
)engine=innodb;
mysql> desc tes1;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| t1_col1 | int(4) | NO | PRI | 0 | |
| t1_col2 | varchar(10) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
mysql> select*from tes1;
+---------+---------+
| t1_col1 | t1_col2 |
+---------+---------+
| 1 | Upd |
| 2 | Upd |
+---------+---------+
----------
子
----------
mysql> create table tes2(
t2_col1 int (4),
t2_col2 varchar (10),
t1_col2 varchar (10),
primary key (t2_col1),
foreign key (t1_col2) references tes1 on update cascade
);
mysql> desc tes2;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| t2_col1 | int(4) | NO | PRI | 0 | |
| t2_col2 | varchar(10) | YES | | NULL | |
| t1_col2 | varchar(10) | YES | MUL | NULL | |
+---------+-------------+------+-----+---------+-------+
mysql> select*from tes2;
+---------+---------+---------+
| t2_col1 | t2_col2 | t1_col2 |
+---------+---------+---------+
| 1 | line11 | Upd |
| 2 | line22 | Upd |
+---------+---------+---------+
これで親の t1_col2 を更新して、子のテーブルを見ると何も変わっていません。何か無茶をしでかしている気はするんですが、いかんせん経験不足で原因が掴めません。どなたかアドバイスいただけると有り難いです。
宜しくお願いします。orz
お礼
レスが遅くなりまして(^^;)。社会人が通信で『コソ勉』です。丁寧にタグまで頂いて…!有り難うございます!! そして、動作ですが…むむ、ちゃんと動きます。自分がやると半日調べたり試したり、ブラウザのタブがぎっしりになるまで色々見てやってもダメだったのに(泣)なんでだー!<経験と脳力 悲しいくらいサクサク動きます…。分かっている人がやるとこうも違う物なんですかね。勝手ながら師匠と仰がせて頂きます。orz でも、おかげさまで肝心の課題制作に入れます。なるべく自力で!とは思うのですが、いかんせん毎週締め切りがあるので、時間が足りなくなってはgooに泣きつくのがパターン化しつつあります。このたびは助けて頂き、有り難うございました。m(_ _)m れざ