小编Mar*_*uan的帖子

当sql.DB.Exec时,对SQL中的自定义类型感到困惑

有这个表结构:

CREATE TABLE `tableName` (
    `Id` int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `Status` enum('pending','rejected','sent','invalid') NOT NULL,
    `Body` varchar(255) NULL
) ENGINE='MyISAM' COLLATE 'utf8_general_ci';
Run Code Online (Sandbox Code Playgroud)

我有这个(不完整)代码正常工作:

type StatusEnum string

const (
    STATUS_PENDING  StatusEnum = "pending"
    STATUS_REJECTED StatusEnum = "rejected"
    STATUS_SENT     StatusEnum = "sent"
    STATUS_INVALID  StatusEnum = "invalid"
)

func (s *StatusEnum) Scan(src interface{}) error {
    if src == nil {
        return errors.New("This field cannot be NULL")
    }

    if stringStatus, ok := src.([]byte); ok {
        *s = StatusEnum(string(stringStatus[:]))

        return nil …
Run Code Online (Sandbox Code Playgroud)

mysql sql types go custom-type

6
推荐指数
1
解决办法
3479
查看次数

标签 统计

custom-type ×1

go ×1

mysql ×1

sql ×1

types ×1