我们有上千张桌子。在这些表中,我们只有几个表。它们有时会很忙。如果我在这些表上执行任何ALTER语句或creating trigger,我就不能这样做。如何在postgresql数据库中的表上运行ALTER或creating TRIGGER之前检查表是忙还是空。
发布于 2018-08-21 21:25:53
最简单的方法是运行
LOCK TABLE mytable NOWAIT;
如果没有收到错误,则ALTER TABLE
语句无需等待即可继续执行。
发布于 2018-08-21 21:30:09
下面的查询返回数据库中的锁定对象。
select t.relname, l.locktype, page, virtualtransaction, pid, mode, granted
from pg_locks l, pg_stat_all_tables t
where l.relation=t.relid
order by relation asc;
https://stackoverflow.com/questions/51949757
复制相似问题