У меня есть файл mysql test.sql, содержащий хранимую процедуру. чтобы загрузить этот файл sql после подключения к базе данных на сервере go, я использовал команду Exec. Но я не получил желаемого результата. Беру код ошибки
1064 You have an error in your SQL syntax; check the manual that corr...
Как я могу загрузить хранимую процедуру из файла 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 ;
Опубликуйте полученную ошибку, если таковая имеется.
Я исправил вопрос. Надеюсь, это более наглядно.






Я ожидал чего-то большего:
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
}
Спасибо за быстрый ответ. Я воспользовался твоим советом. Но я взял тот же код ошибки в строке Db.Exec. Код ошибки: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует ... Я минимизировал количество кода в тестовой хранимой процедуре, насколько это возможно, чтобы уменьшить вероятность ошибки из-за другой команды sql. Под вопросом находится test.sql, который я использовал.
peterSO, я заметил изменение, которое вы внесли в переменную позже. А пока я исправил ваш код. Я хотел вернуть его в исходный вид, на этот раз он был заблокирован правилом смены 6 знаков. Простите. и еще раз спасибо.
проблема вызвана командой разделителя. Я удаляю эти строки. Проблема решена.
«Но я не получил желаемого результата» - что это значит? Какого результата вы хотели, какой результат вы получили, в чем конкретно ваша проблема?