1
Table A
(
Table_A_ID int
)

Table B
(
Table_B_ID int
Value int
)

テーブルBにデータを挿入するとします。ここで、「値」はTable_A_IDと同じです。挿入時にデータが実際にテーブルに存在することを制約または確認するにはどうすればよいですか?

4

4 に答える 4

1

おそらく、テーブル B への INSERT だけでなく、両方のテーブルの UPDATE と DELETE でもデータの整合性を強化する必要があります。

とにかくオプションは次のとおりです。

  1. テーブル B の外部キー制約
  2. 両方のテーブルのTRIGGER
  3. 何らかの理由で 1 と 2 がオプションでない場合の最後の手段として、両方のテーブルのすべての挿入、更新操作のSTORED PROCEDUREを削除します。

ほとんどの場合、推奨される方法は FOREIGN KEY CONSTRAINT です。

于 2013-02-10T03:37:55.390 に答える
0
于 2013-02-10T04:05:09.867 に答える
0

うん、@petermに同意します。

原因は、両方が両方のテーブルの主キーである場合Table_A_ID、. したがって、2 つのテーブルは「1 対 1」の関係にあるようです。これは、データベースの整合性の問題の 1 つです。 Table_B_Idvalue

このデータベースに対して適切な正規化を行っていないと思います。
良いアイデアを提案するだけです!

于 2013-02-10T03:55:09.340 に答える