| From: | basti <mailinglist(at)unix-solution(dot)de> |
|---|---|
| To: | pgsql-general(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Conditional INSERT |
| Date: | 2019-03-15 18:54:52 |
| Message-ID: | 1ebb57da-c34b-6581-ea33-bdf78f6990f8@unix-solution.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
this is a dns database, and the client is update the _acme-challenge for
LE certificates. I don't want that the client can insert "any" txt record.
the client should only insert data if the hostname start with
_acme-challenge. i have no control on client.
i have try this rule but the server reject this with a endless loop:
CREATE RULE insert_acme AS ON INSERT TO t_dnsadmin_records_txt
WHERE NEW.hostname like '_acme-challenge%'
DO INSERT INTO t_dnsadmin_records_txt VALUES (
NEW.domainid,
NEW.hostname,
NEW.txtdata
);
On 15.03.19 19:17, Michael Lewis wrote:
> On Fri, Mar 15, 2019 at 10:55 AM basti <mailinglist(at)unix-solution(dot)de
> <mailto:mailinglist(at)unix-solution(dot)de>> wrote:
>
> Hello,
>
> I want to insert data into table only if condition is true.
> For example:
>
> INSERT into mytable (domainid, hostname, txtdata)
> VALUES (100,'_acme.challenge.example', 'somedata');
>
>
> Alternative to a trigger implementation, if you are generating that
> INSERT statement, you can change it to use a sub-select or CTE that
> contains no values if the domainid isn't what you like. If you want it
> to fail with error, you could add a check constraint. We might need more
> context on what you are doing and why to give good advice.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Adrian Klaver | 2019-03-15 18:59:01 | Re: Conditional INSERT |
| Previous Message | Paul Jungwirth | 2019-03-15 18:26:24 | Re: Conditional INSERT |