Re: Basic question about structuring SQL

From: Jason Wang <jasonwang(dot)public(at)gmail(dot)com>
To: Robert Inder <robert(at)interactive(dot)co(dot)uk>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Basic question about structuring SQL
Date: 2020-07-07 13:14:18
Message-ID: CAHVsHgk3kg=gU7+ZBD3eH0h7mk=MxrosN9eN0rCH+Yt8tdFwJQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I don't think nested commit is supported however you might want to put
logic in do-something-useful.sql into a stored procedure without commit and
your BIGGER task just calls this SP and commits at the end; you can run the
SP by itself to have transaction protected.

/Jason

On Tue, 7 Jul 2020 at 21:41, Robert Inder <robert(at)interactive(dot)co(dot)uk> wrote:

> I'm an experienced programmer but really new to SQL,
> and I'm wanting a pointer to "the SQL way" to structure/organise chunks of
> code.
>
> A while back, I wrote a chunk of SQL to Do Something Useful.
> I put it in a file (do-something-useful.sql).
> And, to protect against getting into a weird state, I wrapped the code in
> my file with
> BEGIN;
> UPDATE....
> DELETE...
> COMMIT;
> With the idea that I can do
> psql my_database
> \i do-something-useful.sql
> And be sure that either my task will be have been completed, or nothing
> with have changed.
>
> NOW, I want to do the same for a BIGGER task.
> BUT I realise that if I create bigger-task.sql like this...
> BEGIN;
> <<preparatory operations>>
> \i do-something-useful.sql
> <<tidy up code>>
> COMMIT;
> ...the COMMIT inside "do-something-useful.sql" closes the transaction
> started in "bigger-task.sql"
> So I can get some things committed even if other things (in tidy-up) fail.
>
> So how SHOULD I tackle this?
> PostgreSQL does not do nested transactions (right?)
>
> So how should I structure my chunks of SQL so that I can have "safe"
> (all-or-nothing) blocks,
> AND use them from within one another?
>
> Robert
>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Laurenz Albe 2020-07-07 14:41:04 Re: Basic question about structuring SQL
Previous Message Robert Inder 2020-07-07 11:40:55 Basic question about structuring SQL