2013-06-14 2 views
1

Можно ли заблокировать таблицу в течение определенного времени в базе данных PostgreSQL, выполнив команды psql через скрипт оболочки или файл sql?Блокировка таблицы postgresql

Если мы запустим команду LOCK TABLE, когда скрипт выйдет из замка, он также исчезнет, ​​поэтому этого недостаточно.

+2

Почему вы хотите, чтобы заблокировать таблицу в течение длительного времени чем сценарий? Вы, вероятно, делаете что-то неправильно. – LtWorf

ответ

3

Использовать pg_sleep за указанное время в сочетании с LOCK TABLE? Что-то вроде ниже сценарий должен блокировать таблицу на 60 секунд (заметьте, это не тестировалось):

BEGIN WORK; 
LOCK TABLE MyTable IN ACCESS EXCLUSIVE MODE; 
SELECT pg_sleep(60); 
COMMIT WORK; 
+0

Большое спасибо. Он работает так, как ожидалось, с помощью этой логики – Rasna

+1

Если предложенный скрипт работает, пожалуйста, отметьте это как принятый ответ и повысьте, когда это возможно. :) – Talvalin

Смежные вопросы