
例えば
bigCategory,midleCategoryテーブルがあり、(今回はmiddleCategoryがbigCategoryときーでつながっている)
create table bigCategory
(
num integer not null primary key,
name varchar(20) not null,
);
insert into bigCategory values(0,'category_1');
insert into bigCategory valuers(1,'category_2');
create table middleCategory
(
num integer not null primary key,
name varchar(20) not null,
bigkey integer not null
);
insert into middleCategory values(0,'middle_1',0);
insert into middleCategory values(1,'middle_2',1);
bigCategoryの変更・削除をするときに、
1)middleCategoryがselectされている
→ 変更不可
2)middleCategoryがselectされていない
→変更・削除可能
3)また、middleCategoryはselectされてなくて、
bigCategoryテーブルの変更行が他からselectされていたら、変更・削除不可
といった状況を実現したいのですが、可能なのでしょうか?
候補として、おもうはGRANTかな、と思ったりはするのですが。
いろいろ考えはするのですが、解決策が思いつかず質問させてもらいました。
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
再質問の意味が分かりません。
参照整合性は例えばBigに"A","B","C"しかないなら、Midには"D"とか
作れないということですし、Midに"A"がある時はBigの"A"を削除でき
ないということです。実際に参照されているかいないかはクエリを
実行しないと分かりません。それと、参照整合を設定していない項目は
変更可能です。これも含めて更新不可能にしたいというのであれば、
やり方を考え直す必要があります。
回答ありがとうございます。
>それと、参照整合を設定していない項目は
変更可能です。これも含めて更新不可能にしたいというのであれば、
やり方を考え直す必要があります。
ひとまず現段階では、むずかしいので、参照整合性の方法だけで
実行するようにします。
ありがとうございました。
No.1
- 回答日時:
この回答への補足
回答ありがとうございます。
確認してみました。
create table bigCategory
(
num integer not null,
primary key(num)
);
alter table bigCategory add name varchar(10) REFERENCES middleCategory(key);
insert into bigCategory values(0,'Bigger');
create table middleCategory
(
num integer not null,
name varchar(20) not null,
key varchar(10) not null,
primary key(num)
);
alter table middleCategory add bigKey integer REFERENCES bigCategory (num);
insert into middleCategory values(0,'test',0,' ');
create table middleCategory
(
num integer not null,
name varchar(20) not null,
key varcha(10) not null,
primary key(num)
);
alter table middleCategory add bigKey integer REFERENCES bigCategory (num);
という状態までは、何とかできたのですが、
この時、references以下で、not existsとかのように、指定する値が設定されているかどうかをreferences以下では、できないのでしょうか?
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
timestampのデータはどのように...
-
SELECT INTOで一度に複数の変数...
-
オラクルのUPDATEで複数テーブル
-
SQLで、Join句で結合したテ...
-
sqlに記述できない文字
-
ACCESSにおいてスキーマとは
-
CSVファイルを読み込んでテーブ...
-
テーブル定義書(Oracle) 【IX】...
-
エラーを起こす方法
-
データベース ユーザの「このユ...
-
フラグをたてるってどういうこ...
-
T-SQLで任意の箇所で強制終了す...
-
既存データをINSERT文にして出...
-
副問合せを使わずにUNIONと同様...
-
truncate tableを使って複数の...
-
在庫管理のデータベース
-
selectの単純繰り返し
-
時間の比較をしたい
-
複数のテーブルからデータを取...
-
SQLで一定時間周期毎の抽出方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
timestampのデータはどのように...
-
エクセルvbaでpostgresに接続を...
-
SQLServer からのデータ移行(v...
-
insert処理でDATE型を追加したい
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
UPDATEで既存のレコードに文字...
-
PostgreSQLのtimestamp型で時間...
-
オラクルのUPDATEで複数テーブル
-
既存データをINSERT文にして出...
-
エラーを起こす方法
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
-
SQLサーバに対するSQL文で抽出...
-
UPDATEの更新前の値を取得したい
-
JDBCを使ってdate型へのINSERT...
-
テーブル名が可変の場合のクエ...
おすすめ情報