gpt4 book ai didi

sql - 创建触发器以将行移动到存档表

转载 作者:行者123 更新时间:2023-11-29 13:37:10 24 4
gpt4 key购买 nike

我是 PostgreSQL 触发器的新手,我不知道我想做的是否是触发器工作,但这是我老师的建议。

我有以下链接表:

id | link | visited | filtered | broken | visiting

最后四个属性是 bool 值,默认为 false。目前,我在 UPDATE 上将其设置为 true 并且不再使用它(该行)。

新设计的思路是让链接表只有idlink属性,其他属性给一个存档表(visitedLinksTable、brokenLinksTable、filteredLinksTable和visitingTable) ).

触发器实用程序用于此吗?他们说要把它移动到另一个表(插入到某个存档表并从链接表中删除)

最佳答案

按照这些思路应该可行。具体细节将取决于您的特定架构等。

CREATE FUNCTION update_function() RETURNS TRIGGER AS $$
BEGIN
IF NEW.visited IS TRUE
OR NEW.filtered IS TRUE
OR NEW.broken IS TRUE
OR new.visiting IS TRUE THEN
INSERT INTO archive_table (id,link,visited,filtered,broken,visiting)
VALUES NEW.id,NEW.link,NEW.visited,
NEW.filtered,NEW.broken,NEW.visiting;
DELETE FROM table WHERE id=NEW.id;
RETURN NULL;
END IF;
RETURN NEW
END
$$ LANGUAGE plpgsql;

CREATE TRIGGER update_trigger
BEFORE UPDATE ON table
FOR EACH ROW EXECUTE PROCEDURE
update_function();

关于sql - 创建触发器以将行移动到存档表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7116786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com