我知道视图是使用规则系统实现的,但我不清楚在针对它们运行事务性 DDL 时这是否有任何优点/缺点。发出CREATE OR REPLACE VIEW ...;
或DROP VIEW ...; CREATE VIEW...;
在事务中是否对表取出类似于 DDLACCESS EXCLUSIVE
的锁?是否必须在 DDL 执行之前完成所有在 DDL 之前发出的查询?在 DDL 之后发出的查询是否会阻塞,直到 DDL 完成?
我知道视图是使用规则系统实现的,但我不清楚在针对它们运行事务性 DDL 时这是否有任何优点/缺点。发出CREATE OR REPLACE VIEW ...;
或DROP VIEW ...; CREATE VIEW...;
在事务中是否对表取出类似于 DDLACCESS EXCLUSIVE
的锁?是否必须在 DDL 执行之前完成所有在 DDL 之前发出的查询?在 DDL 之后发出的查询是否会阻塞,直到 DDL 完成?
您的三个问题的直接答案是;
是的,它确实。替换视图时,视图对象的锁将为AccessExclusiveLock。
是的,即使是使用该特定视图的“选择”查询也会等到“创建或替换”语句被提交。
是的,他们有。在提交“view changer”查询后,等待的查询将开始