2016-08-08 45 views
0

Ich versuche, Trigger nach 24 Stunden nach dem Einfügen der Datensätze, für jede Zeile, wie dies zu tun? Bitte helfen SiePostgres-Trigger nach 24 Stunden nach Datensatzeinfügung ausführen?

Sie wissen, wenn Benutzer seine E-Mail nicht verifiziert, wird sein Konto gelöscht.

Ohne cron und so weiter.

Postgres db. PostgreSQL

+0

warum nicht Sie cron benutzen? Es ist die beste Lösung – Borys

Antwort

0

Dies kann helfen, in Bezug auf die Planung eines SQL-Befehls zu einer bestimmten Zeit ausgeführt werden.

PGagent

Dies ist der Befehl, den ich dieses PGagent verwenden in getestet und man konnte.

delete from email_tbl where email_id in(select email_id from email_tbl 
where timestamp < now() - '1 day'::interval); 

Hier sind die Testdaten, die ich verwendet habe.

CREATE EXTENSION citext; 

CREATE DOMAIN email_addr AS citext 
CHECK(
VALUE ~ '^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+[.][A-Za-z]+$' 
); 


CREATE TABLE email_tbl (
email_id SERIAL PRIMARY KEY, 
email_addr email_addr NOT NULL UNIQUE, 
timestamp timestamp default current_timestamp 
); 

Und hier einige Testdaten

insert into email_tbl (email_addr) values('[email protected]') 

insert into email_tbl (email_addr,timestamp) 
values('[email protected]','2015-07-15 00:00:00'::timestamp) 

select * from email_tbl where timestamp < now() - '1 day'::interval 

Alles Gute