通过更新外键更新主键

时间:2015-04-14 09:30:14

标签: mysql

我有一个会员表如下:

会员表:

 Name              |          Handicap
 Joe Bloggs        |             18

Stableford表:

  Player_name    |     Player Handicap    |   Score   |   Handicap Change
    Joe Bloggs   |            18          |     38    |         17

我现在想用Handicap Change值更新Player Handicap(17),但是我收到错误:

  

无法更新子行。

Player HandicapStableford表中的FOREIGN KEY。它REFERENCES member(handicap)

当我更新Player Handicap表中的Stableford字段时,我还希望更新我的成员表中的差点字段。这可能吗?

1 个答案:

答案 0 :(得分:2)

你根本不想这样做。

你在这里有一个经典的非规范化。

将Handicap作为外键并没有任何意义。让玩家自己作为外键才有意义。

您需要摆脱 Stableford表中的Handicap字段,并通过成员的名称作为外键从Member表中获取,必要时通过联接。

想要在任何其他表中重复除其密钥之外的任何成员属性。