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

使用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值