Skip to content

数据库能力差异

不同数据库在数据类型、存储过程、视图、事务和安全上下文方面存在差异。数据墙DBW 尽量提供一致的 API 表现,但部分能力受限于底层数据库。

SQL Server

会话上下文

启用 set-session-context 后,数据墙DBW 在每次查询前将 JWT 声明写入 SQL Server 的 SESSION_CONTEXT

json
{
  "data-source": {
    "database-type": "mssql",
    "options": { "set-session-context": true }
  }
}

注意事项:

  • 仅 SQL Server 2016+ 支持。
  • 启用后响应缓存被自动禁用。
  • JWT 声明直接映射为 SESSION_CONTEXT 键。

不支持的数据类型

数据类型原因
geography地理空间类型,不支持序列化
geometry平面空间类型,不支持序列化
hierarchyid层次数据类型,不支持序列化
rowversion行版本类型,不包含在 API 响应中
sql_variant可变类型列,不支持类型推断
xmlXML 类型,不支持序列化

SQL Server 独有功能

功能说明
存储过程实体完整支持,包括参数配置
autoentities基于 T-SQL LIKE 模式的自动实体发现
聚合查询GraphQL aggregategroupBy
多重变更GraphQL 多重 create/update/delete
会话上下文JWT 声明注入数据库会话

PostgreSQL

最低版本

需要 PostgreSQL 11 或更高版本。引擎使用 Npgsql 驱动连接。

不支持的数据类型

数据类型说明
bytea二进制字符串,不支持序列化
date建议使用 timestamp 替代
time不带日期的时间类型
timestamptz带时区的时间戳,当前不支持

连接字符串参数名

PostgreSQL 的参数名使用空格分隔的 PascalCase(User IDSSL Mode),与 SQL Server 和 MySQL 格式不同。

不支持的功能

功能说明
存储过程不支持暴露为实体
聚合查询GraphQL 聚合不可用
多重变更GraphQL 多重变更不可用
autoentities不支持
会话上下文不支持
GraphQL 多重创建不支持

MySQL

最低版本

需要 MySQL 8 或更高版本。

不支持的数据类型

数据类型说明
geometry空间类型,不支持序列化
json原生 JSON 类型,当前不支持映射
set枚举集合类型,不支持类型推断
time不带日期的时间类型

不支持的功能

功能说明
视图实体不支持暴露视图
存储过程不支持暴露为实体
聚合查询GraphQL 聚合不可用
多重变更GraphQL 多重变更不可用
autoentities不支持
会话上下文不支持
GraphQL 多重创建不支持

三数据库功能能力总览

能力MSSQLPGSQLMySQL
表实体
视图实体
存储过程实体
GraphQL 聚合
GraphQL 多重变更
autoentities
会话上下文
MCP 自定义工具
字段别名
实体权限
行级策略

下一步

数据墙DBW 产品文档与开发指南。