Search Postgresql Archives

Re: Howto prevent write based on date

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



rumor has it that Richard wrote:

> Franco Bruno Borghesi wrote:
> > You could write a trigger like this:
> > 
> > 
> > CREATE OR REPLACE FUNCTION checkDate() RETURNS TRIGGER LANGUAGE
> > 'plpgsql' AS ' DECLARE
> > 	limitDate DATE DEFAULT current_date-''1 year''::INTERVAL;
> > BEGIN
> > 	IF (OLD.date<=limitDate) THEN
> > 		RAISE EXCEPTION ''Cannot change record.'';
> > 	END IF;
> > 
> > 	RETURN NEW;
> > END;
> > ';
> > 
> > CREATE TRIGGER xxxx_tg1 BEFORE UPDATE OR DELETE ON xxxx FOR EACH ROW
> > EXECUTE PROCEDURE checkDate();
> > 
> > This should do the job :)

I feel like I'm 1 meter tall and the wave on the beach are more than 3
meters high...

Thank you for the code.

It looks like it would need to be a part of any access to the database,
so I imagine I would have to figure out where to put it into the
front-end code. Is this correct?

> Franco's trigger function should do the job just fine, but speaking
> from  experience you'll want to take further steps.
> 
> Take a backup of the database, restore it to another system and also 
> burn a copy to a CD.
> 
> If the auditors come round it's simple to explain what you've done and
> 
> demonstrate the data on the CD and backup system match. It also means 
> that should any changes occur to your historical data despite your 
> precautions you can prove that this happened.

Ahh, that is a good idea! A database dump is a part of my daily backup.

I guess I could also make a read-only copy of the year-end as a second
database on the same system. That could make it easy to keep an eye on
the main database so I (hopefully) spot any ripples that reach back to
last year.

            Thanks for the help!   Philip

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux