Im пытается прочитать в sql-файле, который будет выполнен с помощью powershell. Все работает отлично, за исключением того, что powershell выдает ошибку из-за разделителя слов. Итак, мой вопрос: как я могу использовать разделитель в моем sql-файле (я могу внести незначительные изменения в файл sql, его код должен оставаться относительно неизменным), но загружая его правильно через powershell.Как использовать разделитель SQL через powershell
Heres мой код из обоих файлов и ошибка, которую я получаю. Заранее спасибо.
Powershell:
$sql = (Get-Content $pwd\NewClient.sql) | Out-String
$cmd.CommandText = "USE $dbname"
$cmd.ExecuteNonQuery()
$cmd.CommandText = $sql
$cmd.ExecuteNonQuery()
SQL:
delimiter //
......
end;//
delimiter ;
Исключение вызова "ExecuteNonQuery" с "0" аргумент (ы): «У вас есть ошибка в вашем синтаксисе SQL; в руководстве, соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с «Разделителем // создать триггер stop_time_insert после вставки на стопах по строке 1»
Вы можете отправить код SQL? Кроме того, я не думаю, что оператор use будет иметь какое-то влияние на второй вызов ExecuteNonQuery. –
Извините за незнание, но как я могу отправить вам код? Я сделал быстрый поиск и обнаружил, что SO не имеет опции PM. Должен ли я просто вставить код здесь? – G3TH
Извините, я неправильно понял вопрос в первый раз. Я бы предположил, что проблема связана с терминатором линии между двумя системами. Я предполагаю, что mysql набирает «delimiter // create trigger ...». на одной строке, вызывая синтаксическую ошибку. Я не знаю, как это исправить. –