1
我遇到了一個觸發器問題,它不會通過SQLAlchemy中的.merge()
調用觸發。
我有以下觸發:SQLAlchemy:觸發器沒有觸發INSERT
CREATE TRIGGER trigger_update_comment_count
BEFORE INSERT ON mediacomment
FOR EACH ROW
EXECUTE PROCEDURE update_comment_count();
觸發執行以下步驟:
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;
觸發的偉大工程,如果我做一個基於SQL INSERT這樣的:
INSERT INTO medialike VALUES (999292999,'2016-01-01 00:00:00.000000',367668179,true,'770160534981089486_12336189');
但是,當我使用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
你確定它實際上是發出'INSERT'而不是'UPDATE'嗎? – univerio