我想使数据库中的一个字段为空。
ALTER TABLE answers ALTER COLUMN author_id DROP NOT NULL;
问题是我的数据库中有很多数据,我不确定alter命令是否会阻塞表进行写操作。
我知道更改列的大小或类型将导致行排它锁https://www.postgresql.org/docs/current/static/explicit-locking.html#LOCKING-TABLES。
我是否也将表锁定为写操作还是可以安全使用?
答案 0 :(得分:2)
是的,ALTER将需要在表上具有排他锁(包括阻止对表的写访问)
但是,锁定的持续时间非常短,并且与表的大小无关。本质上,这只是内部系统表的更新。