在学习 go 的道路上,月拱一卒。今天把元旦前搁置的一个工程打开来,继续学习用 go 语言与数据库进行交互,使用了 github.com/xiuno/dbx 这个库。
把例子程序保存为 main.go 后创建了个工程,可是一编译就会报一个错“Error loading workspace: gopls requires a module at the root of your workspace.”。看了别人的踩坑记录才搞清楚,原来是 gopls 的锅,需要在 settings.json
里加上 "gopls": { "experimentalWorkspaceModule": true }
这个配置(加上以后要重启一下 vscode)。
接着又报几处 composite literal uses unkeyed fields
这样的警告。仍然是看他人的踏坑记录,是定义结构对象时初始化成员处没有写成员名导致的,写成 key: value 样式即可。
编译后执行,数据库在创建数据表的时候返回错误“Error 1101: BLOB, TEXT, GEOMETRY or JSON column ‘xxx’ can’t have a default value”。他人的踏坑经验说,这是因为数据库的 sql_mode(可以执行 select @@sql_mode
语句查看)里有 STRICT_TRANS_TABLES
,将其去掉重启一下数据库服务即可。