技能标识: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.
将 MySQL CREATE TABLE 语句转换为带标签的 Go 结构体:
完整的 MySQL 到 Go 类型映射,请参见 type_mappings.md。
| MySQL | Go | 备注 |
|---|---|---|
| INT | int | |
| BIGINT |
将 snake_case 转换为 CamelCase:
user_name → UserName
created_at → CreatedAt
user_id → UserID
api_key → APIKey
is_active → IsActive
特殊情况 - 缩写保持大写:
为每个字段生成三个标签:
| 约束 | 标签 |
|---|---|
| 主键 | xorm:pk |
| 自增 |
组合约束: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
}
对于可空列(允许 NULL),使用指针类型:
go
// MySQL: phone VARCHAR(20) NULL
Phone *string form:phone json:phone xorm:phone nullable
使用表注释作为结构体注释,或根据表名生成:
go
// User 表示 users 表
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 sql-to-go-1776069249 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 sql-to-go-1776069249 技能
skillhub install sql-to-go-1776069249
文件大小: 3.13 KB | 发布时间: 2026-4-15 14:29