2016-04-13 3 views
1

У меня есть файл sql с определенными параметрами, которые мне нужно сделать как общие.Вызов sql-файла внутри другого файла sql

Ниже приведен базовый код в C: \ SQL \ main.sql:

SET @NAME = 'XYZ'

source C:/abc.sql

Мне нужно все вхождения NAME быть заменен XYZ в abc.sql файла .which в основном содержит набор вставки statements.I выбежала следующую команду:

mysql -u myusername -p DB < C:\sql\main.sql

Но после выполнения его бросков и ошибок, говоря:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SOURCE C:/abc' at line 2

Все, что мне нужно сделать, это вызвать SQL файл C: \ abc.sql в C: \ SQL \ main.sql, а затем выполнить C: \ sql \ main.sql. Может ли кто-нибудь помочь мне в этом?

+0

Сообщение об ошибке выглядит усеченным, так как нет закрывающейся одной кавычки, проверьте, завершено ли оно и приложите полное сообщение, если нет. – user4759923

+0

да только что изменил его. Мне интересно, можно ли это достичь? – Neethu

ответ

2

Я только что протестировал это, и я думаю, что единственная проблема с вашим скриптом (main.sql) - это выражения, которые не заканчиваются точкой с запятой.

попробовать добавить точку с запятой в конец строки:

SET @NAME = 'XYZ'; 

Я был в состоянии проверить, что определенный пользователь переменной @NAME находится в области видимости, когда второй файл (abc.sql) выполняет следующее в второй файл:

SELECT @NAME; 

# Output: 
XYZ 
+0

Спасибо за ответ. один из моих операторов вставки выглядит следующим образом: 'INSERT INTO Table_One (name) values ​​('JOHN _' \ @ NAME \ '_ SMITH'); ' при выполнении этого броска ниже ошибки: ' ERROR 1048 (23000) в строке 5 в файле: 'C: /abc.sql': Столбец 'Name' не может быть null '. Как разместить @NAME между значением NAME JOHN SMITH? Он должен выглядеть так: JOHN_XYZ_SMITH – Neethu

+0

Попробуйте использовать [CONCAT()] (http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat), например 'CONCAT ('JOHN_', @ NAME, '_SMITH') '- также, для дополнительных вопросов вы должны публиковать как новый вопрос, а не как комментарий. – JYelton

+0

Да, это сработало! Спасибо @JYelton :) – Neethu

Смежные вопросы