更新时间:2025-06-04 GMT+08:00

U0400019:GaussDB不支持多关系的更新和删除

描述

数据库类型与版本

  • 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
  • 目标库类型与版本:GaussDB集中式版V2.0-3.1之前版本,GaussDB分布式版。

语法示例

UGO不进行多表更新和删除的转换,在不支持多表更新及删除的GaussDB版本中,将生成此错误提示。

如下示例在GaussDB集中式版V2.0-3.1之前版本以及GaussDB分布式版中不支持。

update sbtest2, sbtest1 set sbtest2.c='1' and sbtest1.id = 1;
delete from a,sub using test_keep a inner join test_keep1 sub on a.id=sub.id and sub.id=2 and a.fatherid=1;

改造建议

通过手工改造将对多表的更新和删除操作修改成多次的单语句更新与删除操作。上述示例的手改方案参考:

update sbtest2 set sbtest2.c='1';
update sbtest1 set sbtest1.id = 1;
delete from test_keep1 sub where sub.id=2 and sub.id in (select id from test_keep where fatherid=1);
delete from test_keep a where a.id=2 and a.fatherid=1;

请注意,单语句改写成多语句的形式,可能会增加客户端与数据库之间的交互次数,影响使用性能。