闲社服务运行正常AI智能体自动化平台
s

SQL转Go结构

技能标识:sql-to-go

Convert MySQL CREATE TABLE statements to Go structs with form, json, and xorm tags. Use when converting SQL DDL to Go struct definitions, generating ORM models from database schemas, or creating Go types from MySQL tables. Supports MySQL data type mapping, snake_case to CamelCase conversion, and automatic tag generation.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

SQL转Go结构

SQL 转 Go 结构体

快速开始

将 MySQL CREATE TABLE 语句转换为带标签的 Go 结构体:

  1. 1. 解析 CREATE TABLE 语句以提取表名、列和约束
  2. 将每个 MySQL 列类型映射到对应的 Go 类型
  3. 将蛇形命名法(snake_case)列名转换为驼峰命名法(CamelCase)字段名
  4. 生成带有 form、json 和 xorm 标签的结构体

类型映射

完整的 MySQL 到 Go 类型映射,请参见 type_mappings.md。

快速参考

MySQLGo备注
INTint
BIGINT
int64 | | | VARCHAR | string | | | TEXT | string | | | DATETIME | time.Time | | | TIMESTAMP | time.Time | | | BOOL / BIT(1) | bool | | | DECIMAL | float64 | 或自定义类型 |

列名转换

将 snake_case 转换为 CamelCase:

user_name → UserName
created_at → CreatedAt
user_id → UserID
api_key → APIKey
is_active → IsActive

特殊情况 - 缩写保持大写:

  • - id → ID
  • url → URL
  • uri → URI

标签生成

为每个字段生成三个标签:

  • - form:HTTP 表单参数名(蛇形命名法)
  • json:JSON 字段名(蛇形命名法)
  • xorm:XORM ORM 列名和约束

XORM 标签模式

约束标签
主键xorm:pk
自增
xorm:autoincr | | 非空 | xorm:not null | | 唯一 | xorm:unique | | 默认值 | xorm:default value | | 可空 | xorm:nullable | | 索引 | xorm:index | | 注释 | xorm:comment text |

组合约束:xorm:user_id pk autoincr

示例

输入

sql
CREATE TABLE users (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
age INT DEFAULT 0,
createdat DATETIME DEFAULT CURRENTTIMESTAMP,
is_active BOOLEAN DEFAULT TRUE,
bio TEXT
) COMMENT=用户表;

输出

go
package models

import time

// User 表示 users 表
type User struct {
ID uint64 form:id json:id xorm:id pk autoincr
Username string form:username json:username xorm:username unique not null
Email string form:email json:email xorm:email not null
Age int form:age json:age xorm:age default 0
CreatedAt time.Time form:createdat json:createdat xorm:created_at
IsActive bool form:isactive json:isactive xorm:is_active default true
Bio string form:bio json:bio xorm:bio
}

工作流程

  1. 1. 提取表信息:获取表名、列定义、约束
  2. 应用类型映射:参考 type_mappings.md
  3. 生成字段名:将蛇形命名法列名转换为驼峰命名法
  4. 添加标签:根据列属性生成 form/json/xorm 标签
  5. 处理特殊情况:主键、索引、默认值、注释

可空列

对于可空列(允许 NULL),使用指针类型:

go
// MySQL: phone VARCHAR(20) NULL
Phone *string form:phone json:phone xorm:phone nullable

结构体注释

使用表注释作为结构体注释,或根据表名生成:

go
// User 表示 users 表

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 sql-to-go-1776069249 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 sql-to-go-1776069249 技能

通过命令行安装

skillhub install sql-to-go-1776069249

下载

⬇ 下载 sql-to-go v1.0.0(免费)

文件大小: 3.13 KB | 发布时间: 2026-4-15 14:29

v1.0.0 最新 2026-4-15 14:29
- Initial release: Convert MySQL CREATE TABLE statements to Go structs
- Maps MySQL column types to Go types, including handling of unsigned and nullable types
- Converts snake_case column names to CamelCase Go field names, preserving common acronyms
- Automatically generates form, json, and xorm tags for each struct field
- Supports key xorm tag constraints: pk, autoincr, unique, not null, defaults, comments, and index
- Uses table comments as Go struct comments for improved code documentation
返回顶部