0

顧客が"AllowRefund"であるかどうかを示す列を持つ Customer テーブルがあり、" AllowRerfund "の特権をクレジットしているスタッフを示す列By_Which_Staffが必要です。

私の要件は次のとおりです。スタッフ ID をBy_Which_Staffテーブルに入れる前に、DB は最初に列AllowRefundYesであるかどうかを確認してから、スタッフ ID を入れることができます。

4

2 に答える 2

2

これは制約である必要があります。トリガーは、現在の行の外にある何かを操作している (または少なくとも利用している) 場合にのみ使用する必要があります。

許容できない値 (負の年齢、18 歳以上の k1 学生) には制約を使用し、複合値 (フルネームなど) には計算値を使用する必要があります。

于 2012-11-09T16:38:15.180 に答える
1

CHECK制約はおそらく最も単純です。MS-SQL の場合:

CHECK (AllowRefund = 1 Or By_Which_Staff Is Null)
于 2012-11-09T16:37:42.000 に答える