database - 锁定 postgresql 表

标签 database postgresql locking psql table-lock

是否可以通过 shell 脚本或 sql 文件运行 psql 命令来锁定 PostgreSQL 数据库中的表指定时间?

如果我们运行 LOCK TABLE 命令,当脚本退出时锁也将消失,所以这是不够的。

最佳答案

pg_sleepLOCK TABLE 一起用于您指定的时间?类似于下面的脚本应该将表锁定 60 秒(注意这是未经测试的):

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

关于database - 锁定 postgresql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103859/

相关文章:

sql - 条件聚合数据库查询及其性能影响

postgresql - 如何使用 PGPASSFILE 环境变量?

c# - COM 异常 : "Class not registered" when trying to create an ADOX. 目录

sql - 将 WHERE 和 IN 子句与两个字段组合

php - 元素位置的最佳数据库插入查询

locking - 我需要Dart中的Mutex

mysql - 为什么我得到 "MySQL is not running but lock exists"?

postgresql - 在 Dockerfile 中为 Postgres 9.6.x 安装 postgresql-dev?

mysql - 将 MySQL 触发器重写为 Postgres

locking - 多个进程之间共享套接字的accept()(基于Apache preforking)