2013-08-26 1 views
0

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

В частности, в папке 2012 года у меня есть около 52 файлов xml и один файл запроса loadStatements.sql для всех XML. LoadStatements.sql имеет следующие строки ... всего несколько.

use uspto2012; 
LOAD XML LOCAL INFILE 'H:/uspto_db/mysql/2012/ipa120126/ipa120126-01_sql.xml' INTO TABLE  assignee ROWS IDENTIFIED BY '<assignee>'; 
LOAD XML LOCAL INFILE 'H:/uspto_db/mysql/2012/ipa120126/ipa120126-01_sql.xml' INTO TABLE  claims ROWS IDENTIFIED BY '<claims>'; 
LOAD XML LOCAL INFILE 'H:/uspto_db/mysql/2012/ipa120126/ipa120126-01_sql.xml' INTO TABLE description ROWS IDENTIFIED BY '<description>'; 
LOAD XML LOCAL INFILE 'H:/uspto_db/mysql/2012/ipa120126/ipa120126-01_sql.xml' INTO TABLE info ROWS IDENTIFIED BY '<info>'; 

Теперь, если я вызываю этот файл из workbench или оболочки MySQL, он работает нормально. Теперь у меня есть сотни этих файлов. Очень удобно загружать каждый файл вручную.

Мне нужен один главный файл, который может вызывать эти файлы загрузки. i.e

use uspto2012; 
SOURCE H:/uspto_db/mysql/2012/ipa120126/loadStatements.sql; 
SOURCE H:/uspto_db/mysql/2012/ipa120202/loadStatements.sql; 
SOURCE H:/uspto_db/mysql/2012/ipa120209/loadStatements.sql; 
SOURCE H:/uspto_db/mysql/2012/ipa120216/loadStatements.sql; 

Но когда я пытаюсь запустить этот файл, я получаю ошибку, от mwb. «Источник не известен как команда MySQL»

Мне очень нужна помощь по лучшему пути для достижения этой цели.

ответ

0

SOURCE - команда командной строки mysql.

Если вы уже создали свой мастер-файл, вы можете сделать это, хотя

C:\> mysql -uuser -p < H:/path/to/your/matser_file.sql 

или

C:\> mysql -uuser -p -e "source H:/path/to/your/matser_file.sql" 
+0

мастер-файл имеет тысячи этих строк 'code'SOURCE H:/uspto_db/MySQL/2012 /ipa120126/loadStatements.sql; «code» мне нужно, как вызвать только один главный файл и позволить процессу вызывать каждый источник ... последовательно, пока все не будет выполнено. –

+0

Я понимаю это с вашего вопроса. И ответ показывает ** точно **, как добиться того, чего вы хотите с командной строкой mysql. – peterm