要实现按天更新PostgreSQL中的兴趣值,可以按照以下解决方法进行操作:
CREATE TABLE interest (
user_id INTEGER,
interest_value INTEGER,
last_updated DATE
);
CREATE OR REPLACE FUNCTION update_interest() RETURNS TRIGGER AS $$
BEGIN
-- 更新兴趣值
UPDATE interest SET interest_value = NEW.interest_value, last_updated = current_date
WHERE user_id = NEW.user_id;
-- 如果用户不存在,则插入新的记录
IF NOT FOUND THEN
INSERT INTO interest(user_id, interest_value, last_updated)
VALUES (NEW.user_id, NEW.interest_value, current_date);
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_interest_trigger
AFTER INSERT ON interest
FOR EACH ROW
EXECUTE FUNCTION update_interest();
INSERT INTO interest(user_id, interest_value) VALUES (1, 10)
ON CONFLICT (user_id) DO UPDATE SET interest_value = excluded.interest_value;
上述代码将在兴趣值已存在时更新兴趣值,否则插入新的记录。
UPDATE interest SET interest_value = interest_value + 1, last_updated = current_date;
上述代码将为所有用户的兴趣值增加1,并更新最后更新日期为当前日期。
通过以上步骤,你可以实现按天更新PostgreSQL中的兴趣值。请注意,示例代码仅供参考,你可能需要根据你的实际需求进行适当的修改。