我想改变我的Postgres DB中的几个表的模式。问题是,总是有长时间运行的查询,并且据我所知,模式更改需要排他锁。问题是我该怎么做当然,我可以杀死所有现有的查询,并尝试做模式重命名(移动表到不同的模式),但有一个巨大的机会,在此期间,新的查询将出现。谢谢帮忙!
wkftcu5l1#
ALTER TABLE
SELECT pg_backend_pid()
SELECT pg_blocking_pids(12345)
SELECT pg_cancel_backend(23456)
1条答案
按热度按时间wkftcu5l1#
ALTER TABLE
之前运行SELECT pg_backend_pid()
ALTER TABLE
语句SELECT pg_blocking_pids(12345)
,其中12345是第一个查询的结果SELECT pg_cancel_backend(23456)
查询时发现的所有阻塞事务