私は2つのMySQLテーブルを持っています。投票テーブル(id, userId, postId, voteTypeId)
と投稿テーブル(id, postTypeId, userId, parentId)
テーブル。私は票の上に挿入した後に起動するトリガを書いています。トリガーを使用してMySQLの別のテーブルを更新するにはどうすればよいですか?
私は、投稿テーブルの投稿を更新するトリガーを希望します。しかし、この投稿はpostId
の私の投票表で参照されているものと同じではありません。それはその投稿の親です。
BEGIN
CASE NEW.voteTypeId
WHEN 2 THEN UPDATE posts SET posts.acceptedAnswerId = NEW.postId WHERE posts.id = @the parent postId of NEW.postId
ELSE
BEGIN
END;
END CASE;
END
私は...代わりに@The親の本を使用してみました:
(SELECT posts.parentId FROM posts WHERE posts.id = NEW.postId)
しかし、あなたは私はあなたがSELECT INTO構文のいくつかのタイプを使用しない限り、あなたはトリガーでSELECTSを行うことができるとは思いません。私が更新したい親投稿への私の唯一の参照は、参照された票の子postIdです。だから私はselectを使って正しいidを取得せずに更新を行う方法を知らない。
これは可能ですか?
あなたが実際にトリガー内でSELECTを行うことができます。しかし、あなたの他の構文は少し外見になります。 – Mchl
@Mchl、私はいくつかの組み合わせを試しましたが、うまくいきませんでした。私が間違っていることを私に指摘できますか? – Mohamad