10月30日(金)2コマ目
今日、やったこと
- 参照整合性制約(外部キー制約)
- チェック制約
今日のホワイトボード
制約名の命名規則
制約名から「どのテーブル」に設定した、「どんな制約」かがわかるように。
![]() |
| 図 制約名の命名規則 |
参照整合性制約(外部キー制約)
別テーブルの主キーを参照する列を外部キーと呼ぶ。この参照関係には以下が成り立たないとダメ。
- 外部キー列には参照先に存在するデータのみ登録可能
- 参照先が削除されると困る
よって、参照関係を維持するために参照する側のテーブル(外部キーのあるテーブル)に参照整合性制約(外部キー制約)を設定する。
![]() |
| 図 参照整合性制約 |
参照整合性制約(外部キー制約)の設定方法
列制約構文と表制約構文で異なるため注意!!
![]() |
| 図 参照整合性制約の設定方法 |
この授業では参照整合性制約には制約名を指定する。そのため表制約構文で指定することになる。
テーブルの削除
参照整合性制約で参照される側のテーブル(親テーブル)は制約があるため、削除できない。削除するには子テーブル側の参照整合性制約を解除する必要がある。
参照される側テーブル(親テーブル)を削除するには以下の2種類がある。
・さきに参照する側テーブル(子テーブル)を削除する
参照整合性制約は参照する側(子テーブル)側に設定してあるため、子テーブルを削除すると一緒に参照整合性制約も削除される。=>親テーブルも削除可能。
・親テーブル削除時に「cascade constraints」オプションを指定する
一緒に子テーブルの参照整合性制約も削除される。
![]() |
| 図 テーブルの削除 |
おまけ テーブル一覧を出力する
以下のSQLを実行すること。
SELECT table_name FROM user_tables;




コメント