
CASCADE CONSTRAINTSオプション使用時の子表の値について教えてください。
例
子表 親表
NAME NUM NO ADRESS
---------- --------------
AAA 10 10 DDD
BBB 20 20 EEE
CCC NULL
子表のNUM列が、親表のNO列を参照。
DROP TABLE 親表 CASCADE CONSTRAINTS;
を実行すると親表が削除されますが、子表はどうなるのでしょうか。
いろいろ調べてみましたが、はっきりしません。
1.制約だけが削除されて、値は変わらない。
2.参照していた行が削除される。NULLの行は残る?
3.参照していた列が削除される。
4.その他
以上、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
>1.制約だけが削除されて、値は変わらない。
子表の制約も削除されますが、子表のデータは残ります。
試してみましょう。
SQL> create table oya_table
2 (
3 col1 number PRIMARY KEY
4 );
表が作成されました。
SQL>
SQL>
SQL> create table ko_table
2 (
3 col1 number PRIMARY KEY
4 );
表が作成されました。
SQL>
SQL> ALTER TABLE ko_table
2 ADD CONSTRAINT fk_ko_table
3 FOREIGN KEY (col1)
4 REFERENCES oya_table(col1);
表が変更されました。
SQL>
SQL>
SQL>
SQL> insert into oya_table values(1);
1行が作成されました。
SQL> insert into oya_table values(2);
1行が作成されました。
SQL>
SQL> insert into ko_table values(3);
insert into ko_table values(3)
*
行1でエラーが発生しました。:
ORA-02291: 整合性制約(SYS.FK_KO_TABLE)に違反しました - 親キーがありません
SQL> insert into ko_table values(1);
1行が作成されました。
SQL>
SQL> commit;
コミットが完了しました。
SQL>
SQL> select * from oya_table;
COL1
----------
1
2
SQL> select * from ko_table;
COL1
----------
1
SQL>
SQL> drop table oya_table cascade constraint;
表が削除されました。
SQL> select * from ko_table;
COL1
----------
1
SQL> insert into ko_table values(3);
1行が作成されました。
SQL> select * from ko_table;
COL1
----------
1
3
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CLOB型へのINSERT
-
truncate文で全テーブルを一気...
-
テーブル名を[]でくくらないと...
-
Oracle テーブルの列削除
-
count(1)とcount(*)の違い
-
oracle sqlで先頭の1件を取得
-
Oracle複数の表をもとにmerge文...
-
レコードのコピーについて
-
oracleのプライマリ・キー名の変更
-
"table device"とは何かについて
-
異なるスキーマからデータを抽...
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
-
グループ化したいのですが
-
SQL*Loaderで、データを加工し...
-
ORA-00959: 表領域'****'は...
-
datapumpの実行方法について
-
DELETE文でFROM句を省略した場合
-
Data Pump で大量データインポ...
-
C#でaccdbファイルのテーブルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLOB型へのINSERT
-
テーブル名を[]でくくらないと...
-
oracleのプライマリ・キー名の変更
-
Oracle複数の表をもとにmerge文...
-
truncate文で全テーブルを一気...
-
1つのテーブル・2つの列を結合...
-
ある英語の問題のコト
-
グループの数を取得したい
-
主キーが二つのテーブルのselec...
-
レコードのコピーについて
-
複数テーブルのUPDATE
-
PostgreSQLでテーブルの項目の操作
-
updateで
-
Oracle上のテーブルからCREATE ...
-
create table as select
-
count(1)とcount(*)の違い
-
alter table でチェックボック...
-
Oracle テーブルの列削除
-
マンションのベランダでお酒の...
-
SQLのto_char関数の未定義エラー
おすすめ情報