常常用到批量更新sql,也常采用sql拼接批量执行;
再熟悉不过得sql居然再 go 执行时 提示语法错误;
百思不得其解时偶遇文章得知:
一些 mysql 驱动默认是不支持multi statements的需要进行配置,因为 multi statements 可能会增加sql注入的风险
解决办法
需要加入参数 multiStatements=true
db, err := sql.Open(sqlType, "user:password@tcp(127.0.0.1:3306)/database?multiStatements=true")
if err != nil {
log.Fatalf("open mysql err: %s", err)
}