制約っていらなくね?at DB
制約っていらなくね? - 暇つぶし2ch35:29
04/07/10 22:59 .net
自己レスです。ちょっと思いついちゃいました。
テーブルAを参照する外部キーを、それ専用のテーブルにして、他のテーブルはそのテーブルを INHERITS すれば
具合がいい気がしてきました。
こんなかんじ。
CREATE TABLE_A (
 ID INTEGER PRIMARY KEY,
 DATA TEXT
);
CREATE TABLE_FK (
 FK INTEGER NOT NULL REFERENCES TABLE_A(ID)
);
CREATE TABLE_B (
 SOMEDATA TEXT
) INHERITS(TABLE_FK);
CREATE TABLE_C (
 SOMEDATA TEXT
) INHERITS(TABLE_FK);
そうすると、削除 TABLE_A の削除は
DELETE FROM TABLE_A WHERE NOT EXISTS(SELECT 1 FROM TABLE_FK WHERE FK=TABLE_A.ID);
みたいな感じですかね。
シンプルで速そうな気がしますが、いかがでしょう?
でも、外部キーに参照されてるレコードなのか否かの判定方法は知りたいので、知ってる人がいましたらよろしくです。



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch