# 数据库方言管理
# 概述
本功能用于管理各数据库SQL语句模板。同步到数据库、从数据库同步、导出表结构和表数据脚本这三个功能都通过此模板动态生成相应的SQL语句。
【模块路径:】系统配置化平台 -> 元数据 -> 数据库方言管理
# 配置方言
点击页面中新增或编辑按钮,即可配置各数据库方言。
方言配置遵循以下规则:
- 方言模板语法为freemarker,详细规则参考freemarker模板引擎官方文档 (opens new window)
- 系统中已针对所有支持的数据库配置了默认方言,用户可根据需求进行自定义修改
- 一个数据库只允许配置一个方言
统一执行
属性:后台执行SQL时,分为单条执行和批量执行两种形式- 开关关闭:以;为间隔,依次单条执行SQL
- 开关打开:批量执行同一条方言内配置的所有SQL语句
每种方言中,可以使用的动态变量(模板入参)是内置的,具体说明如下:
- 创建表
- 作用场景:同步到数据库、从数据库同步、导出结构脚本
- 可用变量:
{
"tableName": "a_test", //表名
"comment": "这是一个测试表", //表备注
"primaryKeyName": "pk_a_test", //主键约束名
"primaryKeys": "id,name", //主键字段,逗号拼接
"fields": [{ //字段集合
"fieldName": "id", //字段名
"oldFieldName": "idold", //修改前字段名
"fieldType": "int" //字段类型
"comment": "主键", //字段备注
"defaultValue": "1", //默认值
"isNotNull": true, //是否为空
"isAutoIncrement": true, //是否自增
"isOnlyPrimaryKey": false, //是否是唯一主键
"primaryKeyName": "pk_a_test", //主键名
}, {
"isNotNull": true,
"isAutoIncrement": false,
"fieldName": "name",
"oldFieldName": "nameold",
"comment": "名称",
"fieldType": "varchar"
}]
}
- 更新表
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test", //表名
"oldTableName": "a_test_old", //修改前表名
"comment": "这是一个测试表2" //表备注
}
- 删除表
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test" //表名
}
- 创建主键
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test", //表名
"primaryKeyName": "pk_a_test", //主键约束名
"primaryKeys": "id,name" //主键字段,逗号拼接
}
- 删除主键
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test", //表名
"primaryKeyName": "pk_a_test" //主键约束名
}
- 创建索引
- 作用场景:同步到数据库、从数据库同步、导出结构脚本
- 可用变量:
{
"tableName": "a_test", //表名
"indexes": [{ //索引集合
{
"indexCode": "idx_a_test_1", //索引名
"indexName": "索引1", //索引备注
"indexType": "2", //索引类型(1-普通索引,2-唯一索引)
"fieldCodes": "id,name" //索引字段
}]
}
- 删除索引
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test", //表名
"indexCodes": ["idx_a_test_1"] //删除索引编码集合
}
- 创建约束
- 作用场景:同步到数据库、从数据库同步、导出结构脚本
- 可用变量:
{
"tableName": "a_test", //表名
"constraints": [{ //约束集合
{
"constraintCode": "idx_a_test_1", //约束名
"constraintName": "索引1", //约束备注
"constraintType": "PRIMARY", //约束类型(PRIMARY-主键约束,UNIQUE-唯一约束)
"fieldCodes": "id,name" //约束字段
}]
}
- 删除约束
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test", //表名
"constraintCodes": ["idx_a_test_1"] //删除索约束编码集合
}
- 新增字段
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test", //表名
"fields": [{ //字段集合
"fieldName": "id", //字段名
"oldFieldName": "idold", //修改前字段名
"fieldType": "int" //字段类型
"comment": "主键", //字段备注
"defaultValue": "1", //默认值
"isNotNull": true, //是否为空
"isAutoIncrement": true, //是否自增
"isOnlyPrimaryKey": false, //是否是唯一主键
"primaryKeyName": "pk_a_test", //主键名
}, {
"isNotNull": true,
"isAutoIncrement": false,
"fieldName": "name",
"oldFieldName": "nameOld",
"comment": "名称",
"fieldType": "varchar"
}]
}
- 更新字段
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test", //表名
"fields": [{ //字段集合
"fieldName": "id", //字段名
"oldFieldName": "idold", //修改前字段名
"fieldType": "int" //字段类型
"comment": "主键", //字段备注
"defaultValue": "1", //默认值
"isNotNull": true, //是否为空
"isAutoIncrement": true, //是否自增
"isOnlyPrimaryKey": false, //是否是唯一主键
"primaryKeyName": "pk_a_test", //主键名
}, {
"isNotNull": true,
"isAutoIncrement": false,
"fieldName": "name",
"oldFieldName": "nameold",
"comment": "名称",
"fieldType": "varchar"
}]
}
- 删除字段
- 作用场景:同步到数据库、从数据库同步
- 可用变量:
{
"tableName": "a_test", //表名
"fieldCodes": ["name"] //删除字段编码集合
}
- 插入数据
- 作用场景:同步到数据库、从数据库同步、导出数据脚本
- 可用变量:
{
"tableName": "a_test", //表名
"columns": ["id","name"] //字段编码集合
"values": [{"id": 1, "name": "name"}, {"id": 2, "name": "name2"}], //插入数据
"fieldFormatMap": [{"time1": "SYYYY-MM-DD HH24:MI:SS.FF9"}], //日期字段及对应日期格式映射
"colFieldTypeMap": [{"time1": "datetime"}], //字段类型map
"clobCloumn": ["clob_column1"] //clob类型字段集合
}