表「本」:
bookid | title
1 | Java
2 | MySQL
3 | Zen
テーブル "BestPage":
pageid | bookid | isbestpage
1 | 1 | 0
2 | 1 | 0
3 | 1 | 1
4 | 2 | 0
5 | 2 | 1
6 | 2 | 0
そのため、一部の本には "bestpage" がある場合がありますが、1 つだけです。ここで、おそらく beforeupdate トリガーが必要になるため、行を pageid 2 で更新し、isbestpage = 1 を設定すると、他のすべてのページの isbestpage が 0 に設定されます。
何かのようなもの:
for each row
begin
if old.isbestpage = 1 and -- here I want to tell that **only for the current book** !
then
set new.isbestpage = 0
またはそのようなもの。
つまり、あるページを最高のページとしてマークした場合、この書籍内の他のすべてのページは最高のページではないと設定する必要があります。
ありがとう。