10月30日(金)2コマ目

今日、やったこと

  • 参照整合性制約(外部キー制約)
  • チェック制約

今日のホワイトボード

制約名の命名規則

制約名から「どのテーブル」に設定した、「どんな制約」かがわかるように。

図 制約名の命名規則


参照整合性制約(外部キー制約)

別テーブルの主キーを参照する列を外部キーと呼ぶ。この参照関係には以下が成り立たないとダメ。

  • 外部キー列には参照先に存在するデータのみ登録可能
  • 参照先が削除されると困る

よって、参照関係を維持するために参照する側のテーブル(外部キーのあるテーブル)に参照整合性制約(外部キー制約)を設定する。

図 参照整合性制約


参照整合性制約(外部キー制約)の設定方法

列制約構文と表制約構文で異なるため注意!!

図 参照整合性制約の設定方法


この授業では参照整合性制約には制約名を指定する。そのため表制約構文で指定することになる。


テーブルの削除

参照整合性制約で参照される側のテーブル(親テーブル)は制約があるため、削除できない。削除するには子テーブル側の参照整合性制約を解除する必要がある。

参照される側テーブル(親テーブル)を削除するには以下の2種類がある。

・さきに参照する側テーブル(子テーブル)を削除する

参照整合性制約は参照する側(子テーブル)側に設定してあるため、子テーブルを削除すると一緒に参照整合性制約も削除される。=>親テーブルも削除可能。

・親テーブル削除時に「cascade constraints」オプションを指定する

一緒に子テーブルの参照整合性制約も削除される。

図 テーブルの削除


おまけ テーブル一覧を出力する

以下のSQLを実行すること。

SELECT table_name FROM user_tables;


コメント

このブログの人気の投稿

1月15日(金)2コマ目

11月27日(金)2コマ目

1月29日(金)2コマ目