SQL处理 sql转gorm
⎯⎯ 所有目标都是黑暗的,只有行动才与光明相伴!

sql转gorm

 2001  |   | 


Select
     
说 明

sql转gorm



功能介绍

1.支持多种数据库的建表 sql转gorm, 其中包含(pg、oracle、mysql)等数据库; 建表语句, 建表语句, 建表语句(重要的说3遍)
2.在转换 sql 的时候, 需要确认下是否需要切换处理类型, 暂时支持3种处理方式(normal, postgresql, oracle), 默认: normal.
说明: 不能在 sql 中包含注释内容(即: -- xxx# xxx); 只支持单个建表语句.
3.支持自定义过滤不需要的字段, 多个字段通过 , 隔开.
4.支持 tag 注入, 需要多个的时候通过 , 隔开



示例

mysql 建表语句

CREATE TABLE if not exists user (
  id int NOT NULL AUTO_INCREMENT,
  name varchar(10) NOT NULL COMMENT '姓名',
  gender tinyint NOT NULL DEFAULT 0 COMMENT '性别 0-未知 1-男 2-女',
  age int NOT NULL COMMENT '年龄',
  created_date datetime DEFAULT CURRENT_TIMESTAMP,
  updated_date datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
);

处理后

// Code generated by http://www.gotool.top
package model

import (
    "time"
)

type User struct {
    Id int32 `gorm:"column:id;primary_key;AUTO_INCREMENT;NOT NULL"`
    Name string `gorm:"column:name;NOT NULL;comment:'姓名'"`
    Gender int8 `gorm:"column:gender;default:0;NOT NULL;comment:'性别 0-未知 1-男 2-女'"`
    Age int32 `gorm:"column:age;NOT NULL;comment:'年龄'"`
    CreatedDate time.Time `gorm:"column:created_date;default:CURRENT_TIMESTAMP"`
    UpdatedDate time.Time `gorm:"column:updated_date;default:CURRENT_TIMESTAMP"`
}

func (u *User) TableName() string {
    return "user"
}

pgsql 建表语句

CREATE TABLE if not exists user (
  id character varying(32) NOT NULL DEFAULT sys_guid(),
  name character varying(10) NOT NULL,
  gender tinyint NOT NULL,
  age tinyint NOT NULL,
  created_date timestamp without time zone DEFAULT now(),
  updated_date timestamp without time zone DEFAULT now(),
  CONSTRAINT user_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE user IS '用户表';
COMMENT ON COLUMN user.id IS '主键';
COMMENT ON COLUMN user.name IS '姓名';
COMMENT ON COLUMN user.gender IS '性别 0-未知 1-男 2-女';
COMMENT ON COLUMN user.age IS '年龄';
COMMENT ON COLUMN user.created_date IS '创建时间';
COMMENT ON COLUMN user.updated_date IS '更新时间';

处理后

// Code generated by http://www.gotool.top
package model

import (
    "time"
)

type User struct {
    Id string `gorm:"column:id;default:sys_guid();NOT NULL;comment:'主键'"`
    Name string `gorm:"column:name;NOT NULL;comment:'姓名'"`
    Gender int8 `gorm:"column:gender;NOT NULL;comment:'性别 0-未知 1-男 2-女'"`
    Age int8 `gorm:"column:age;NOT NULL;comment:'年龄'"`
    CreatedDate time.Time `gorm:"column:created_date;default:now();comment:'创建时间'"`
    UpdatedDate time.Time `gorm:"column:updated_date;default:now();comment:'更新时间'"`
}

func (u *User) TableName() string {
    return "user"
}

oracle 建表语句

CREATE TABLE if not exists user (
  id character varying(32) NOT NULL DEFAULT sys_guid(),
  name character varying(10) NOT NULL,
  gender tinyint NOT NULL,
  age tinyint NOT NULL,
  created_date date default sysdate,,
  updated_date date default sysdate,,
  CONSTRAINT user_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE user IS '用户表';
COMMENT ON COLUMN user.id IS '主键';
COMMENT ON COLUMN user.name IS '姓名';
COMMENT ON COLUMN user.gender IS '性别 0-未知 1-男 2-女';
COMMENT ON COLUMN user.age IS '年龄';
COMMENT ON COLUMN user.created_date IS '创建时间';
COMMENT ON COLUMN user.updated_date IS '更新时间';

处理后

// Code generated by http://www.gotool.top
package model



type User struct {
    Id string `gorm:"column:id;default:sys_guid();NOT NULL;comment:'主键'"`
    Name string `gorm:"column:name;NOT NULL;comment:'姓名'"`
    Gender int8 `gorm:"column:gender;NOT NULL;comment:'性别 0-未知 1-男 2-女'"`
    Age int8 `gorm:"column:age;NOT NULL;comment:'年龄'"`
    CreatedDate string `gorm:"column:created_date;default:sysdate;comment:'创建时间'"`
    UpdatedDate string `gorm:"column:updated_date;default:sysdate;comment:'更新时间'"`
}

func (u *User) TableName() string {
    return "user"
}