lightdb 支持MySQL DROP INDEX ON语句语法糖

文章介绍了LightDB从23.2版本开始支持一种语法糖,使得在移植MySQL的dropindex语句到LightDB时更加平滑。在MySQL中,由于支持同名索引跨表,删除索引需指定表名,而LightDB和原生PG则不需要。通过案例演示了在LightDB中执行DROPINDEX语句的效果,证明了不加表名也能正确删除索引。
摘要由CSDN通过智能技术生成

背景

在信创移植DDL SQL语句中,来源于MySQL数据库的SQL语句,drop index语句需要指定表名,这是因为MySQL支持在不同表上创建同名索引,所以仅凭索引名称不能唯一确定要删除的索引,而原生PG无需指定表名。LightDB 23.2版本起包装语法糖ON,让移植过程变的平滑。

MySQL DROP INDEX 语法见:https://dev.mysql.com/doc/refman/5.7/en/drop-index.html

语法图

DropStmt ::= DROP INDEX (CONCURRENTLY )? ( IF EXISTS)? 'name' (',' name)* (ON 'name')? (CASCADE | RESTRICT)?

案例演示

文件内容
zhangliang[lightdb@localhost ~/stage/lightdb-x/bin]$ cat test/dropIndexTest/test5.sql
create table t1(id int);
create unique index idx_t1_id on t1(id);
\d t1;
drop index idx_t1_id on t1;
\d t1;
drop table t1;

测试效果

zhangliang[lightdb@localhost ~/stage/lightdb-x/bin]$ ./ltsql -f test/dropIndexTest/test5.sql
CREATE TABLE
CREATE INDEX
Table “public.t1”
Column | Type | Collation | Nullable | Default
--------±--------±----------±---------±--------
id | integer | | |
Indexes:
“idx_t1_id” UNIQUE, btree (id)

DROP INDEX
Table “public.t1”
Column | Type | Collation | Nullable | Default
--------±--------±----------±---------±--------
id | integer | | |

DROP TABLE

结论

在LightDB中,DROP INDEX indexName ON xxx 不报错,效果等价于DROP INDEX indexName

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值