暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓KingbaseES实现 MYSQL 的 delete limit 写法

数据猿 2023-01-05
518

使用MySQL的用户可能会比较熟悉这样的用法,更新或删除时可以指定限制更新或删除多少条记录。

update tl set xxx=xxx where xxx limit 10;

deletefrom tl where xxx limit 10;

目前KingbaseES没有类似的语法,但是可以通过子查询来达到同样的效果。

创建测试表

test=# createtable t1(id number, uid number);
CREATETABLE
test=# insertinto t1 SELECT generate_series(1,20000),(random()*(10^7))::integer;
INSERT020000

update | delete limit 子查询写法

test=# DELETEFROM t1 WHERE id in(SELECT id FROM t1 ORDERBY id limit 10);
DELETE10

test=# update t1 set uid=999where id in (select id from t1 where id between50and200 limit 30);
UPDATE30
test=# select*from t1 where id between50and200;
 id  |   uid   
-----+---------
61|999
62|999
63|999
64|999
65|999
66|999
67|999
68|999
69|999
70|999
71|999
72|999
73|999
74|999
75|999
76|999
77|999
78|999
79|999
80|999
81|999
82|999
83|999
84|999
85|999
86|999
87|999
88|999
89|999
90|999
91|4791280
92|8658152
93|4275799
94|1188468
95|4405454
96|6355264
97|3400361
98|7912872
99|4159834
100|8621857
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论