私は2つのテーブル、1つの 'マスター'テーブルと1つの '子'テーブルを持っています。 各テーブルには、ProductNoという名前のフィールドがあり、PRIMARY KEYおよびUNIQUEとして定義されています。 テーブル 'child'に 'ProductNo'フィールドを定義し、テーブル 'master'に同じフィールドをPRIMARY + UNIQUEとして定義することはできますか?2つのテーブルの主キー
master:
ID | ProductNo
child:
ID | MasterID (FK on master.ID) | ProductNo
Relation >> 1 (master) : n (child)
example data:
master:
1 | 1234
2 | 4567
child:
100 | 1 | 3333
101 | 1 | 4444
102 | 2 | 5555
103 | 1 | 1234 <----- NOT ALLOWED! PRODUCT NO ALREADY EXISTING IN TABLE `MASTER`
104 | 2 | 1234 <----- NOT ALLOWED! PRODUCT NO ALREADY EXISTING IN TABLE `MASTER`
テーブル 'master'に 'ProductNo'が既に存在する場合は、 'child'テーブルの挿入/更新をチェックする必要があります。
どうすれば定義できますか? また、このためのトリガーを作成する必要がありますか?
TIAマット
プライマリ+ユニークの意味は?主キーはデフォルトで一意です。2つの違いはプライマリキーだけがヌル値を受け入れないことです –
'child'テーブルの行は、他のIDが一致するかどうかにかかわらず' master'の行と同じ 'ProductNo'を持つことができません?いくつかのサンプルデータと期待される結果(許可または拒否の更新)が役立ちます。 – onedaywhen
既に 'master'テーブルにある' child'テーブルにProductNoを持たせることはできません。 – frgtv10