golang调用mysql函数

我有一个现有的 mysql 表,它使用 mysql 的UUID_SHORT()函数来生成唯一的 ID。该表的简化版本:


CREATE TABLE `users` (

  `user_uuid` bigint(20) unsigned NOT NULL,

  `user_name` varchar(64) NOT NULL

);

并且将通过以下方式创建一个新用户:


INSERT INTO users (user_uuid, user_name) values (UUID_SHORT(), "new user name");

我开始使用gorm实现 DBs 模型,并且我在创建用户的新实例时如何告诉 gorm 和数据库/sql 调用 UUID_SHORT() 空白。


来自模型/users.go:


package model


type User struct {

    UserUUID          uint64     `gorm:"column:user_uuid;primary_key:yes";sql:"notnull;default:uuid_short"`

    UserName          string     `sql:"notnull"`

}


func (user User) TableName() string {

    return "users"

}

来自模型/users_test.go:


package model_test


import (

    "testing"


    ".../model"

    ".../model/testutil"

)


func TestUserCreate(t *testing.T) {

    user := model.User{

        // UserUUID: **HOW DO I CALL UUID_SHORT() HERE?**,

        UserName: "Go Test",

    }

    // testutil.DB is the successful result of gorm.Open("mysql", ...)

    testutil.DB.Create(&user)

}

保存实例时,如何为 user_uuid 列调用 UUID_SHORT()?


富国沪深
浏览 148回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go