从sql文件加载存储过程

时间:2018-07-30 17:04:25

标签: mysql go

我有一个包含存储过程的mysql test.sql文件。 要连接到Go Server中的数据库后加载此sql文件,我使用了Exec命令。但是我没有得到想要的结果。我输入错误代码

  

1064您的SQL语法有错误;检查正确的手册...

在go中连接数据库后,如何从sql文件加载存储过程。

//转到代码部分:

sqlProc, err := ioutil.ReadFile("E:/Qlass/goserv/src/cevir/test.sql")
// handle error

_, err = MAPP.DB.Db.Exec(string(sqlProc[:]))
// handle error

// test.sql的内容

drop procedure if exists Test;
delimiter ;;
create procedure Test()
begin
    truncate table _prlog;
end ;;
delimiter ;

问题是由delimeter命令引起的。我删除了这些行。问题解决了。更正的sql文件。

drop procedure if exists Test;
create procedure Test()
begin
    truncate table _prlog;
end ;

1 个答案:

答案 0 :(得分:1)

我希望有更多类似的东西:

DB, err = sql.Open("mysql", MAPP.CF.Mysql)
if err != nil {
    // handle error
}
data, err := ioutil.ReadFile(`E:/Qlass/goserv/src/modul/modul_sp.sql`)
if err != nil {
    // handle error
}
sqlProc := string(data)
_, err := DB.Exec(sqlProc)
if err != nil {
    // handle error
}