オラクルの参照整合性制約(FOREIGN KEY)の問題

◆◇------------------------------------------------------------------◆◇
【問い】対象試験:Oracle入門

住所表(ADDRESS)の社員番号には外部キーが設定されており、社員表(EMP)
の社員番号を参照します。社員が退職した場合、社員表からデータを削除しま
すが、住所表のデータについても同時に削除させるためのDELETE文のオプショ
ンとして適切なものを1つ選びなさい。
a.CASCADE
b.ON DELETE CASCADE
c.CASCADE DELETE
d.ON DELETE SET NULL
e.オプションはなくても、外部キーが設定されているため自動で削除される

【答え】
b

【解説】
参照整合性制約(FOREIGN KEY)の問題になります。

上記の場合、親表(参照表)である社員表の社員番号列(親キー)を、
住所表の社員番号列が外部キーとして参照しているということになります。
社員表に存在しない社員の住所は、住所表には登録できない・・という
ことですね。
外部キーを設定する時の約束事として、下記のようなものがあります。
・両方の列のデータ型が同一である
・親キー=主キーまたは一意キー

また、親表内の行を削除時、以下のようなオプションをDELETE文に付加す
ることができます。
・ON DELETE CASCADE:親表内の行削除時、子表の依存行削除
・ON DELETE SET NULL:親表内の行削除時、子表の列値をNULLに更新

親表に対応する列値がないと、子表のデータは存在してはいけないため、
逆に親表のデータを削除する際に、紐づく子表のデータも削除してしまおう
というのが「ON DELETE CASCADE」であり、子表のレコード自体は残したい
ので、NULLに更新しておこうというのが「ON DELETE SET NULL」です。

今回の場合は、EMP 表のデータ削除時にADDRESS表のデータも削除させたい
ため、「ON DELETE CASCADE」を使用します。
◆◇------------------------------------------------------------------◆◇

親表の主キーの追加、SQL 文:
ALTER TABLE LOCATION
ADD ( PRIMARY KEY (LOCATION_CD) )

子表の外部キーの設定、SQL文:
alter table LOCATIONMACHINEMST add constraint FK_2 foreign key (LOCATION_CD)
references LOCATION


 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值