Объединить файлы сценариев SQL (по порядку) - PullRequest
2 голосов
/ 03 апреля 2012

У меня есть все мои таблицы, представления, триггеры в разных файлах (Table1.sql, Table2.sql, View1.sql, ...), и мне нужно объединить все мои скрипты модели, чтобы создать скрипт allinone.sql ( например, для доставки для развертывания). Прямо сейчас я могу объединить все, используя команду "type" следующим образом:

type *.sql > allinone.sql (or cat in bash)

Но, поскольку у меня есть ссылочная целостность, мне нужно откорректировать порядок объединения файлов. (в противном случае сценарий allinone.sql не будет выполнен из-за ссылочной целостности)

Знаете ли вы какое-либо программное обеспечение или метод для этого?

Ответы [ 2 ]

3 голосов
/ 03 апреля 2012

отключить проверку fkey перед запуском скрипта

SET FOREIGN_KEY_CHECKS = 0;

в конце введите

SET FOREIGN_KEY_CHECKS = 1;

чтобы включить проверку fkey

0 голосов
/ 03 апреля 2012

Если ваша реализация SQL имеет механизм include file , вы можете использовать это.Для монитора терминала Postgres psql это можно сделать с помощью команды \i filename:

\i create_database.sql
\i create_tables.sql
\i populate_tables.sql
\i create_indexes.sql
\i create_functions.sql
\i create_triggers.sql
\i revoke_and_grant.sql
\i do_some_checks.sql

Все это должно быть помещено в сценарий "all_files.sql", а затем отправлено psql a_database <all_files.sql.Конечно, вам придется вручную заказывать сценарии, чтобы получить требуемый порядок выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...