From: | Leif Jensen <leif(at)crysberg(dot)dk> |
---|---|
To: | Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at> |
Cc: | Charles Clavadetscher <clavadetscher(at)swisspug(dot)org>, pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Delete trigger |
Date: | 2015-09-18 09:52:38 |
Message-ID: | 1456658027.5268060.1442569958125.JavaMail.zimbra@crysberg.dk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello Laurenz,
Thank you for you suggestion. I really want to aviod that someone 'accidentally' deletes too much by typing (programming) a not full qualified DELETE ... statement. In your case one would have to always use the delete function, but no restrictions on using the DELETE statement.
Leif
----- Original Message -----
> Leif Jensen wrote:
> > If I do "DELETE FROM devicegroup WHERE group=1" I do not want to delete
> > anything. I only want to
> > delete if I do "DELETE FROM devicegroup WHERE groupid=x AND ctrlid=y AND
> > userid=z". I don't wanna let
> > anyone delete more than 1 row at a time.
>
> I can't think of a way to do that with a trigger.
>
> I'd write a
> FUNCTION delete_devicegroup(groupid integer, ctrlid integer, userid
> integer)
> RETURNS void CALLED ON NULL INPUT VOLATILE SECURITY DEFINER
> that enables the user to delete a row and checks that all arguments
> are NOT NULL. The user doesn't get privileges to DELETE from the table
> directly.
>
> Yours,
> Laurenz Albe
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Sathiyan Subramanian | 2015-09-18 11:49:05 | Re: Online backup of PostgreSQL data. |
Previous Message | Albe Laurenz | 2015-09-18 09:21:23 | Re: Delete trigger |