2015-06-09 4 views
1

Я хотел бы написать команду db2, которая обнаруживает первую базу данных, или нет, и если существует такая база данных, то отбросьте эту базу данных и создайте новую обновленную базу данных.Оставьте базу данных DB2, если она существует

Пожалуйста, помогите для одной

+0

Вы используете DB2 для г/OS или LUW? Ответ может быть зависимым от платформы или ОС. (Пользователи DB2 for i редко создают или удаляют базы данных) – WarrenT

ответ

0

Существует не команда или язык в DB2, которые поддерживают эту команду. Вы должны определить, что делать, если данное имя существует как псевдоним базы данных (а не настоящее имя базы данных), удалить псевдоним? переименовать его?

Сценарий будет выглядеть следующим образом:

  1. Список каталог базы данных и фильтровать имя и псевдоним (список db2 дб каталог). Фильтрация может выполняться в Linux с помощью Awk или Grep в Windows с фильтром.
  2. Если есть псевдоним базы данных с этим именем, тогда ВЫ решаете, что делать.
  3. Вместо этого, если есть имя базы данных с этим именем, затем отбросьте его (db2 drop db xxx)
  4. Создайте базу данных.
  5. Если в системе существует ошибка существующей базы данных (SQL1005N), тогда ее каталогизируйте и удалите (каталог db2 db xxx, db2 drop db xxx)
  6. Повторите создание базы данных.
0

Первая таблица система запросов, в DB2 для ZOS таблицы SYSIBM.SYSDATABASE или SYSIBM.SYSTABLES, в db2 LUW версии таблицы syscat.tables. Если в запросе есть строки, база данных существует.

0

вызова этой функции позволит вам удалить таблицу, если существуют:

CALL FNC.DROP_IF_EXISTS('TABLENAME')!

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