clickhouse更新数据和Mysql更新数据完全不同,Mysql是同步更新,clickhouse是异步更新,在clickhouse执行更新命令后,clickhouse会起一个线程异步更新,什么时候更新完是不确定的,但一般情况下是很快的,几秒钟到几分钟。
但是在执行更新命令的时候,命令执行失败了,在终端上是看不出来的,而且一旦执行失败,后续的更新命令也不会执行,所以需要找出那个失败的更新命令,然后清除它,再重新执行更新命令。
做法如下,现在执行查询命令:
select * from system.mutations where is_done = 0;
这个查询可以查看mutation执行队列,如果有错误,则删除失败的任务。
删除语句:
kill mutation where database = 'default' and table = 'your_table_name';