私が探しているのは、レコードを挿入してから、同じ ID を持つ以前のレコードを非アクティブ化することです。それらは使用されなくなるためです。ただし、これを可能な限り簡単な方法で行うことを検討しています。レコードを削除することは、実際にはオプションではありません。
試みた操作の順序:
- アクティブな inUse 値で挿入
inUse = 1
- 使用されなくなった同じ ID の次のレコードを更新します。
inUse = 0
私の最初の考えは、このクエリを実行することでした:
UPDATE page_tags
SET inUse = IF(inUse = 1, 0, 1)
WHERE page_id = 23678459
AND tag_id NOT IN (10, 4);
このクエリの唯一の問題は、再度実行すると、非アクティブ化されたすべての値が 1 に戻ることです。特定の ID のすべてのタグが、WHERE ステートメントの対象になっている場合にのみ元に戻るようにする必要があります。