制約っていらなくね? (114レス)
1-

35
(2): 29 04/07/10 22:59 ID:??? AAS
自己レスです。ちょっと思いついちゃいました。

テーブル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-
あと 79 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s