背景
在信创移植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
语法图
案例演示
文件内容
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
。