更新数据库字段类型报错,头疼了

nodep · · 896 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

尝试用golang写Struct自动生成表、添加字段、更新字段类/最终是为了实现一个带缓存策略的ORM 现在遇到***更新字段类型时***一直报错: 目的:当代码struct的nickname类型长度从18变为其他值时,自动刷数据库字段属性。 ``` if strings.Index(err.Error(), "Duplicate column name") >= 0 { //重复的列,则修改列的参数类型 str := fmt.Sprintf(`alter table %s alter column %s`, tb, keys[i]) _, err = this.db.Exec(str) if err != nil { fmt.Println(str) fmt.Println(err) } } else { panic(err) } 输出-> str->alter table player alter column nickname varchar(12) NOT NULL err->Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(12) NOT NULL' at line 1 ``` 用来生成表格的Struct ``` type Player struct { Uuid string `db:"uuid varchar(36) NOT NULL PRIMARY KEY"` Account string `db:"account varchar(60) NOT NULL"` Name string `db:"nickname varchar(12) NOT NULL"` Level int16 `db:"lv smallint NOT NULL DEFAULT 1"` } ``` 第一次生成的数据库如下图: 尝试修改到verchar(12)报错,做了很多尝试也没有解决。反复检查拼接也没看出所以然来,希望社区朋友们遇到过的告知一下!! 不胜感激 ![QQ图片20190907163334.png](https://static.studygolang.com/190907/a7ec177a6d7d27f49c40d6a69e134830.png)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

896 次点击  
加入收藏 微博
1 回复  |  直到 2019-09-07 18:13:25
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传