CREATE TABLE preferences(
user_id INT,
hot_sid INT,
not_sid INT,
)Engine = InnoDB;
CREATE TRIGGER check_show_comparison
AFTER INSERT ON preferences
REFERENCING NEW ROW
FOR EACH ROW
WHEN ( hot_sid = not_sid )
ROLLBACK TRANSACTION;
そのため、MYSQLを使用してデータベースをセットアップして、ホットかどうかに似たものを追跡しようとしています。実際の目的はそれほど重要ではありませんが、基本的には、3 つの列を持つ設定と呼ばれるテーブルがあります。最初の列はユーザー ID で、2 番目と 3 番目の列は同じ種類のオブジェクトを表す設定 ID です。(ホットまたはノットの例では、hot_sid は「ホット」エンティティの ID を格納し、not_sid は「ノット」エンティティの ID を格納します。これら 2 つのエンティティは同じタイプです)。
テーブルへの挿入ごとにトリガーを書き込んで、誰かがホットとそうでないのと同じsidを持つ行を追加できないようにしようとしています。このチェック制約を実装するときに何が間違っていますか? チェック制約を使用することだけを考えましたが、MYSQL で実際に強制されているとは思いません。
ご協力ありがとうございました!