How to lock and unlock table in postgresql - Mailing list pgsql-general

From Siva Palanisamy
Subject How to lock and unlock table in postgresql
Date
Msg-id 90F0F47595235141A4380FCF01B0185B2243F4BC49@CHN-HCLT-EVS07.HCLT.CORP.HCL.IN
Whole thread Raw
Responses Re: How to lock and unlock table in postgresql  (John R Pierce <pierce@hogranch.com>)
Re: How to lock and unlock table in postgresql  (Alban Hertroys <haramrae@gmail.com>)
List pgsql-general

Hi ya,

 

I've 2 tables: One being the master (table1) and another being the slave (table2). I want to lock table1 until the below function completes, and it should unlock the same at last.

Below is my function. Pls guide me on how to apply locking table1 and unlocking the same finally. The scenario why I require this is: I want to add 70000 records in these tables. As I want to retrieve the last generated Id of table1 which is needed for a foreign column in table2, I used MAX operation. If anyone tries to add a record manually, I suspect it might get disturbed. So, I wish to go for locking and unlocking the table for every record insertion such that other process waits till this function completes its tasks. If there is a better solution, kindly let me know.

 

    CREATE OR REPLACE FUNCTION Fun()

    RETURNS VOID AS '

    DECLARE

    Id INTEGER;

    BEGIN

    INSERT INTO table1 VALUES (DEFAULT, ''Sample'', DEFAULT);

    SELECT MAX(id) INTO Id FROM table1;

    INSERT INTO table2 VALUES(DEFAULT,Id,''sampledata'');

    END;

    ' LANGUAGE 'plpgsql';

 

Regards,

Siva.



::DISCLAIMER::
-----------------------------------------------------------------------------------------------------------------------

The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only.
It shall not attach any liability on the originator or HCL or its affiliates. Any views or opinions presented in
this email are solely those of the author and may not necessarily reflect the opinions of HCL or its affiliates.
Any form of reproduction, dissemination, copying, disclosure, modification, distribution and / or publication of
this message without the prior written consent of the author of this e-mail is strictly prohibited. If you have
received this email in error please delete it and notify the sender immediately. Before opening any mail and
attachments please check them for viruses and defect.

-----------------------------------------------------------------------------------------------------------------------

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Is it ever necessary to vacuum a table that only gets inserts/updates?
Next
From: John R Pierce
Date:
Subject: Re: How to lock and unlock table in postgresql