晚上好 。我正在使用nodejs、prisma、postgresql 开发一个聊天应用程序。我希望在特定聊天中创建最后一条消息后 24 小时内立即从 postgresql 数据库中删除。为此,我创建了一个触发器:
--function creation
create or replace function chat_expired() returns trigger as $delete_account$
begin
delete from chat where current_timestamp - last.messages.createAt = 24*60*60;
return new;
end;
$delete_account$ language plpgsql ;
-- trigger creation
create trigger messages_added
after update
on chat --I get error on this line
for each row
execute procedure chat_expired();
Run Code Online (Sandbox Code Playgroud)
来自 postgresql 查询工具,但是当我执行时,我收到错误 cat 关系在触发器定义级别不存在。我猜是因为我的查询工具空间中还没有定义聊天表;但我没有设置它,因为聊天表已经从 prisma Immigration 创建。因此,我删除了 prisma 迁移的文件夹,然后创建了一个新的迁移,并.sql手动修改了该文件,以便将触发器插入其中,从而认为 prisma 也会在与数据库表同时为我创建触发器:--函数创建
create or replace function "chat_expired"() returns trigger as $delete_account$ …Run Code Online (Sandbox Code Playgroud)