1
SQLAlchemy에서 .merge()
호출을 통해 트리거되지 않는 트리거에 문제가 있습니다.
나는 다음 트리거가 있습니다SQLAlchemy : INSERT에서 트리거가 실행되지 않습니다.
INSERT INTO medialike VALUES (999292999,'2016-01-01 00:00:00.000000',367668179,true,'770160534981089486_12336189');
:이 같은 SQL 기반 INSERT를 할 경우
CREATE OR REPLACE FUNCTION update_comment_count() RETURNS trigger AS $BODY$
BEGIN
UPDATE channel_users
SET comment_count = comment_count + 1,
last_comment = NEW.created_time
WHERE
channel_id = (SELECT ch.channel_id FROM media m
INNER JOIN channel ch ON ch.user_id = m.user_id
WHERE m.media_id = NEW.media_id)
AND user_id = NEW.user_id;
RETURN NEW;
END;
$BODY$ LANGUAGE plpgsql;
트리거가 잘 작동 :
CREATE TRIGGER trigger_update_comment_count
BEFORE INSERT ON mediacomment
FOR EACH ROW
EXECUTE PROCEDURE update_comment_count();
트리거는 다음 절차 실행을
, SQLAlchemy의 .merge()
메서드를 사용하면 행이 삽입되지만 방아쇠가 발사되지 않습니다 :
com = MediaComment(
is_follower=is_follower,
comment_text=comment['txt'],
comment_id_native=str(comment['id']),
created_time=comment['time'],
user_id=str(comment['id']),
media_id=self.media_id
)
self.session.merge(com)
self.session.commit()
이 문제의 원인은 무엇입니까?
내가 PostgreSQL을-9.4 및 Python3
실제로 '업데이트'가 아닌 '삽입'이 실행되고 있습니까? – univerio