diff --git a/internal/codegen/golang/mysql_type.go b/internal/codegen/golang/mysql_type.go index 1c9e6cae53..e227d8a729 100644 --- a/internal/codegen/golang/mysql_type.go +++ b/internal/codegen/golang/mysql_type.go @@ -46,7 +46,10 @@ func mysqlType(req *plugin.CodeGenRequest, col *plugin.Column) string { return "sql.NullInt64" case "blob", "binary", "varbinary", "tinyblob", "mediumblob", "longblob": - return "[]byte" + if notNull { + return "[]byte" + } + return "sql.NullString" case "double", "double precision", "real": if notNull { diff --git a/internal/endtoend/testdata/datatype/mysql/go/models.go b/internal/endtoend/testdata/datatype/mysql/go/models.go index ef9c747cf9..53cb238758 100644 --- a/internal/endtoend/testdata/datatype/mysql/go/models.go +++ b/internal/endtoend/testdata/datatype/mysql/go/models.go @@ -28,15 +28,15 @@ type DtCharacterNotNull struct { A string B string C string - D string - E string - F string + D []byte + E []byte + F []byte G string H string I string - J string + J []byte K string - L string + L []byte } type DtDatetime struct {