我有一个包含存储过程的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 ;
答案 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
}