Citus不支持数据修改命令的多语句事务,因此无法使用<head>
<style>
.container {
to;
left: 0;
top: 0;
bottom: 0;
right: 0;
}
</style>
</head>
<body>
<div class='container'>
<h2></h2>
</div>
</body>
</html>
命令阻止数据迁移期间的并发访问。
在初始数据迁移期间,有没有办法锁定对表的访问?
答案 0 :(得分:1)
虽然Citus确实阻止了包含修改的多语句事务,但此检查显然不适用于新的COPY
支持。因此,如果您实际上正在执行COPY
而非INSERT
,UPDATE
或DELETE
,则可以使用BEGIN
和LOCK
来获取你想要的单写语义:
BEGIN;
LOCK target_table IN ACCESS EXCLUSIVE MODE;
COPY target_table FROM '/file/on/server';
\copy target_table from '~/local/file'
COMMIT;
如果并发会话针对此表尝试INSERT
,UPDATE
或DELETE
,则会阻塞,直到上述事务块提交为止。