1

テーブルを作成して、誰かが行を挿入しようとしたときに、これらの属性のいくつかの組み合わせが他のテーブルに存在するかどうかを確認する状況があります。

たとえば、作成しようとしているテーブル F の属性が a、b、c、d、e で​​構成されているとします。テーブル G に a,b,c,d が存在することを確認したい。テーブル G には属性として a,b,c,d があります。ただし、他の理由により、「b」は主キーにすることはできず、NOT NULL 制約しかありません。このため、b は PK ではないため、テーブル F の 'a,b,c,d' の組み合わせをこのテーブルの FK にして問題を解決することはできません。

テーブルF内のテーブルGを参照するa、b、c、dにFKを設定するのと同じことを行うことができるチェックはありますが、bを主キーにする必要はありませんか?

十分に明確にしていない場合は、お知らせください。編集します。すでにマニュアルを確認しましたが、適切な条項が見つからないようです。

ありがとうございました。

4

1 に答える 1

0

「挿入前」トリガーを使用すると、解決策にかなり近づく可能性があります。

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

コメント セクションを見ると、外部要因に基づいて「提案された」挿入を中止する方法がいくつか提案されています。「設計による」ものではありませんが、可能であるように見えます。

于 2012-09-25T15:46:12.353 に答える