兼容MySQL Multi-Table Update解决了金仓数据库KingbaseES用户无法同时更新多表的问题
关键字
多表、更新
问题描述
用户误操作删除视图定义依赖的表列后,会导致视图无效,无法继续操作。
用户想要使用一个update语句更新两张基表
create table test_multitale1(a int, b text,c date);
create table test_multitale2(aa int, bb text,cc date);
insert into test_multitale1 values(1,'a','2121-11-12');
insert into test_multitale2 values(1,'a','2121-11-12');
insert into test_multitale1 values(2,'b','2121-11-12');
insert into test_multitale1 values(4,'b','2121-11-12');
insert into test_multitale2 values(2,'b','2121-11-12');
insert into test_multitale2 values(3,'b','2121-11-12');
–更新基表test_multitale1
Update test_multitale1 set b = ‘kes’ where a = 2;
–查看基表数据
select * from test_multitale1;

–更新基表test_multitale2
Update test_multitale2 set b = ‘kes’where a = 2;
查看基表数据
select * from test_multitale2;

–同时更新基表test_multitale1与test_multitale2
Update test_multitale1 natural join test_multitale2 set test_multitale1.b=‘kingbase’
,test_multitale2.bb=‘kingbase’;

问题分析
历史版本用户使用update语句只能更新一张基表的数据。想要一条update语句同时更新两张基表的数据暂时还不支持。
解决方案
为解决该问题,一条update语句能够同时更新两张基表,特此开发了兼容MySQL Multi-Table Update的特性。注:该语句仅在KES兼容mysql模式支持。
--同时更新基表test_multitale1与test_multitale2
Update test_multitale1 natural join test_multitale2 set test_multitale1.b='kingbase'
,test_multitale2.bb='kingbase';
--查看基表数据
Select * from test_multitale1;
Select * from test_multitale2;

更多信息,参见https://help.kingbase.com.cn/v8/index.html
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




