---
order: 11
navTitle: compitableVersions
---
# compitableVersions - 配置数据库其他版本兼容性

当数据库不同版本有一些配置不一致时，可以把默认配置以外的其他版本新增或修改的内容和选项配置在此属性中。

示例：

```json
"compitableVersions": {
		">=8.0.0": {
            "forbiddenSQLs": [...],
            "compatibilityLevel": "...",
            "errorIdentifyConfs": {...},
            "sqlKeyWords": {...},
            "dataTypes": {...},
            "identifierTypes": {...},
            "operatorTemplates": {...},
            "sqlTemplates": [...],
            "displayFormats": {},
			"functionTemplates": {...},
			"supports": {...}
		}
	}
```

:::tip 提示

1. `compitableVersions`中配置的顺序要保证高版本在前、低版本在后，系统会从上至下优先选用匹配的高版本的配置。
2. 版本号遵循[semver规范](https://docs.npmjs.com/cli/v6/using-npm/semver)，且必须为3位数字，示例可参考`capabilities.json`的[matchDbVersion](./capabilities-json.md#matchdbversion)属性。
   :::

### 兼容性选项{#compatibility}

兼容性选项的配置与[capabilities.json](./capabilities-json.md)中的配置基本一致，下面列出一些不同的配置选项。

#### compatibilityLevel{#compatibilitylevel}

配置其他版本数据库的兼容级别，默认为`ALL`，详细配置可参考`pacakge.json`中的[数据库兼容级别](./package-json.md#compatibilitylevel)

#### sqlKeyWords{#sqlkeywords}

关键字列表，如果某个字段或表名是关键字，那么会需要转义。

1. 系统默认会读取JDBC驱动API提供的关键字列表，在这里的列表中加上`DONT_AUTO_INCLUDE_DRIVER_KEYWORDS`可禁用此功能。
2. 系统也会自动加上SQL 2003标准中的相关关键字，在这里的列表中加上`DONT_AUTO_INCLUDE_SQL2003_KEYWORDS`可禁用此功能。
3. 基于JDBC驱动API以及SQL 2003标准中的关键字，可以在这里补上自定义的关键字，形成一个完整的关键字列表。

#### identifierTypes{#identifiertypes}

描述数据库一个对象，如表、视图、存储过程等的类型信息。

示例：

```json
"identifierTypes"{
    "type": "...",
    "ignore": true|false
}
```

##### type{#type}

数据库对象在 SuccApp 内对应的对象类型，详细类型如下所示：

- `TABLE`：物理表，可以select和update数据
- `LOCAL_TEMPTABLE`：本地临时表，只在当前连接可见，当前连接物理关闭时删除
- `GLOBAL_TEMPTABLE`：全局临时表，所有连接可见，通常是引用过它的连接关闭时自动删除
- `CUBE`：多维数据集的查询对象类型
- `ESINDEX`：ES索引
- `VIEW`：视图
- `MATERIALIZED_VIEW`：物化视图
- `SYNONYM`：同义词
- `TRIGGER`：触发器
- `INDEX`：索引
- `CONSTRAINT`：约束
- `SEQUENCE`：序列
- `PROCEDURE`：存储过程
- `FUNCTION`：函数
- `UNKNOWN`：其他未知对象

##### ignore{#ignore}

每个数据库的对象类型可能有所区别，若数据库中没有指定的对象类型，可以配置`ignore`为true忽略这个类型，默认为false。
