Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 使列可为null会锁定表以进行读取吗?_Postgresql - Fatal编程技术网

Postgresql 使列可为null会锁定表以进行读取吗?

Postgresql 使列可为null会锁定表以进行读取吗?,postgresql,Postgresql,我想使数据库中的一个字段为空 ALTER TABLE answers ALTER COLUMN author_id DROP NOT NULL; 问题是数据库中有很多数据,我不确定alter命令是否会阻止表进行写操作 我知道更改列的大小或类型将导致行独占锁定 alter I是否也会锁定表以进行写入操作,还是可以安全使用?是的,alter将需要对表进行独占锁定(包括阻止对表的写入访问) 但是,锁的持续时间非常短,并且不取决于表的大小。它本质上只是对内部系统表的更新

我想使数据库中的一个字段为空

ALTER TABLE answers ALTER COLUMN author_id DROP NOT NULL;
问题是数据库中有很多数据,我不确定alter命令是否会阻止表进行写操作

我知道更改列的大小或类型将导致行独占锁定


alter I是否也会锁定表以进行写入操作,还是可以安全使用?

是的,alter将需要对表进行独占锁定(包括阻止对表的写入访问)

但是,锁的持续时间非常短,并且不取决于表的大小。它本质上只是对内部系统表的更新