【发布时间】:2020-06-16 17:20:55
【问题描述】:
我正在尝试创建一个 CTE,我认为它运行良好。但是,我想在此 CTE 上运行更新查询,但我在 MySQL WorkBench 中不断收到以下错误,
"Error Code: 1288. The target table pptest of the UPDATE is not updatable"
我环顾四周,但没有不了解任何变通方法,最重要的是,我对我的 MySQL 也不太了解。我的目标基本上是创建一个表/视图,其中包含一堆已分区的记录,并且每行都有一个索引号,由“row_num”表示。这是将表中的重复数据分组在一起,然后我希望在 row_num 大于 1 的结构上简单地运行更新查询。如此简单的逻辑,但我想不出任何其他方法来实现我的目标。请问有人可以帮忙吗?
我之前运行的完整查询是,
WITH cte as (select *, row_number() over (partition by col_a order by col_a) row_num from db_name.table_name)
update cte set col_b='test' where row_num > 1
【问题讨论】:
标签: mysql sql sql-update common-table-expression window-functions