# 检查数据库连接并获取表结构 ## 接口地址 ``` POST /database/check ``` ## 请求参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | db_type | string | 是 | 数据库类型:`mysql`、`postgres` | | host | string | 是 | 数据库主机 | | port | int | 是 | 数据库端口 | | username | string | 是 | 用户名 | | password | string | 否 | 密码 | | database | string | 是 | 数据库名 | | charset | string | 否 | 字符集,默认 `utf8mb4` | | ssl_mode | string | 否 | SSL 模式 | | database_id | string | 否 | 已存在的数据库ID,用于恢复字段映射 | ## 请求示例 ```json { "db_type": "mysql", "host": "localhost", "port": 3306, "username": "root", "password": "root", "database": "students", "charset": "utf8mb4", "database_id": "xxx-xxx-xxx" // 可选,用于恢复字段映射 } ``` ## 返回参数 | 参数 | 类型 | 说明 | |------|------|------| | success | bool | 是否连接成功 | | message | string | 消息 | | database | string | 数据库名 | | tables | array | 表结构列表 | ### tables[] 详情 | 参数 | 类型 | 说明 | |------|------|------| | table_name | string | 表名 | | table_comment | string | 表注释 | | ddl | string | 建表 DDL(带 COMMENT 的映射后 DDL) | | columns | array | 列信息列表 | ### columns[] 详情 | 参数 | 类型 | 说明 | |------|------|------| | column_name | string | 列名 | | data_type | string | 数据类型 | | column_type | string | 完整列类型 | | is_nullable | string | 是否可空(YES/NO) | | default_value | string | 默认值 | | column_key | string | 主键标识(PRI/MUL/UNI) | | extra | string | 额外信息(如 auto_increment) | | column_comment | string | 列注释 | | mapped_name | string | 字段中文映射名(已保存的映射) | ## 返回示例 ```json { "success": true, "message": "connection successful", "database": "students", "tables": [ { "table_name": "users", "table_comment": "用户表", "ddl": "CREATE TABLE `users` (\n `id` int(10) unsigned NOT NULL COMMENT '用户ID'\n ...\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", "columns": [ { "column_name": "id", "data_type": "int", "column_type": "int(10) unsigned", "is_nullable": "NO", "default_value": "", "column_key": "PRI", "extra": "auto_increment", "column_comment": "", "mapped_name": "用户ID" } ] } ] } ``` ## 使用场景 1. **首次连接**:不传 `database_id`,获取实时表结构 2. **恢复映射**:传入 `database_id`,返回已保存的 `mapped_name` 和 `ddl`