Your Question

目标表结构

CREATE TABLE `test` (
    `id` INT ( 11 ) AUTO_INCREMENT NOT NULL,
    `name` VARCHAR ( 20 ) NULL DEFAULT NULL,
    `resp_time` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY ( `id` ))

golang 结构体

type Test struct {
    ID       int        `gorm:"autoIncrement:true;primaryKey;column:id;type:int(11);not null" json:"id"`
    Name     string     `gorm:"column:name;type:varchar(20);not null;default:''" json:"name"`
    RespTime *time.Time `gorm:"column:resp_time;type:timestamp;default:null" json:"resp_time"`
    //RespTime *time.Time `gorm:"column:resp_time;type:timestamp" json:"resp_time"`
    //RespTime time.Time  `gorm:"column:resp_time;type:timestamp;default:null" json:"resp_time"`
}

gorm 生成的表结构创建语句:

CREATE TABLE `test` (
    `id` INT ( 11 ) AUTO_INCREMENT NOT NULL,
    `name` VARCHAR ( 20 ) NULL DEFAULT NULL,
    `resp_time` TIMESTAMP DEFAULT NULL,
PRIMARY KEY ( `id` ))

执行报错:

Error 1067 (42000): Invalid default value for 'resp_time'

Expected answer

期望的 SQL 为: resp_time TIMESTAMP NULL DEFAULT NULL gorm 生成的 SQL 为:resp_time TIMESTAMP DEFAULT NULL

Issue#7127