John Bachir Asked: 2020-01-23 08:05:38 +0800 CST2020-01-23 08:05:38 +0800 CST 2020-01-23 08:05:38 +0800 CST CREATE TABLE AS 是否锁定表? 772 在 Postgres 中,此查询是否锁定films读取和/或写入? CREATE TABLE films2 AS TABLE films; postgresql locking 1 个回答 Voted Best Answer zsheep 2020-01-23T08:54:59+08:002020-01-23T08:54:59+08:00 不,它不会在电影表上创建读或写锁,因为这会创建 ACCESS SHARE LOCK; 测试这个打开两个会话 在第一个会话中运行此命令 begin; create table films2 as table films; 然后在第二个会话中运行这个命令 Select * from films; Update films set something = 0 如果您需要锁定电影表,您必须像这样发出 Lock begin ; Lock table films in exclusive mode; create table films2 as table films; commit; 这将阻止表更新但不读取... 注意访问共享锁会阻止任何尝试获取访问独占锁的事务,例如 DROP Films 等...
不,它不会在电影表上创建读或写锁,因为这会创建 ACCESS SHARE LOCK;
测试这个打开两个会话
在第一个会话中运行此命令
然后在第二个会话中运行这个命令
如果您需要锁定电影表,您必须像这样发出 Lock
这将阻止表更新但不读取...
注意访问共享锁会阻止任何尝试获取访问独占锁的事务,例如 DROP Films 等...