首页 > 解决方案 > 更改列会锁定 postgresql 中的表吗?

问题描述

需要帮助解决这个问题。尝试谷歌搜索,但没有找到具体的答案。

像这样更改 PostgreSQL 中的表会锁定表吗?

ALTER TABLE public.account ALTER COLUMN type acc_type VARCHAR(16) USING acc_type::VARCHAR(16);

标签: postgresqllockingddl

解决方案


是的,这必须采取访问排他锁,因为元数据会发生变化。根据之前的数据类型,这将是一个非常快的操作(例如,它varchar(10)之前)或非常慢的操作(如果之前的类型不是二进制兼容的)。


推荐阅读