统一SQL支持CREATE INDEX … UNUSABLE关键字还原
【统一sql】:https://www.light-pg.com/docs/LTSQL/current/index.html
LightDB 统一SQL 是一款基于 Go 开发的 SQL 转换中间件,支持将 Oracle 常用 SQL 语法翻译转换为其他数据库的 SQL 。以主流数据库Oracle的SQL为基准,将SQL语句转换为其他信创数据库(LightDB、PostgreSQL、TDSQL、DM8、OceanBase、openGauss等)的SQL语句。目标是降低业务部门适配信创数据库的成本,让用户尽可能少地修改数据访问层代码,使基于Hibernate、JPA、MyBatis等框架的Java应用程序,基于oci、libmysqlclient、cres开发工具、hsdb的c/c++应用程序以及其它能够调用c函数的程序都能够直接切换到目标信创数据库,实现信创数据库之间的平滑迁移。
前言
CREATE INDEX index_name
ON table_name (column1, column2, …)
[USABLE | UNUSABLE] 有UNUSABLE用法,统一SQL Oracle2DM改写时应该支持
UNUSABLE,UNUSABLE表示不可用索引
Oracle2DM
转化语法
目标端是DM
Oracle 19c | DM8 |
---|---|
CREATE INDEX index_name ON table_name (column1, column2, …)[UNUSABLE] | CREATE INDEX index_name ON table_name (column1, column2, …)[UNUSABLE] |
结果
通过统一sql转化之后的结果:
create table unisql_index_test(col1 int,col2 date);
-- 转换前Oracle SQL:
CREATE INDEX unisql_index_test_idx ON unisql_index_test(col1) UNUSABLE;
-- 转换后DM SQL:
CREATE INDEX unisql_index_test_idx ON unisql_index_test (col1) UNUSABLE;