![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
例えば
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で質問しましょう!
似たような質問が見つかりました
- PHP php エラー 2 2022/10/23 16:43
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL MYSQL エラー 2 2022/10/18 11:37
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
timestampのデータはどのように...
-
insertでデータを挿入しても結...
-
SQLServer からのデータ移行(v...
-
ゼロ割りエラーの回避について
-
「総降水量が100mm以上になる...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
UPDATEで既存のレコードに文字...
-
sqlに記述できない文字
-
【SQL】他テーブルに含まれる値...
-
既存データをINSERT文にして出...
-
テーブル名が可変の場合のクエ...
-
truncate tableを使って複数の...
-
オラクルのUPDATEで複数テーブル
-
SELECTした結果に行番号を求めたい
-
CSVファイルを読み込んでテーブ...
-
集計でテストの各教科の最高得...
-
Accessで最新のレコード...
-
五十音順
-
'modify' 付近に不適切な構文が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
timestampのデータはどのように...
-
エクセルvbaでpostgresに接続を...
-
SERIAL型の省略入力について
-
SQLServer からのデータ移行(v...
-
insert処理でDATE型を追加したい
-
NULL か UNIQUE な列は作成可能?
-
PHPでInsertを実行したら空白の...
-
副問い合わせとGROUPの組み合わ...
-
同時アクセス
-
PostgresSQLでの日付の加算減算
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
Accessで今日から5日後
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
オラクルのUPDATEで複数テーブル
-
既存データをINSERT文にして出...
-
PostgreSQLのtimestamp型で時間...
おすすめ情報