Соглашение об именах файлов.unl

Я хотел бы понять, какое правило применяется к соглашению об именах .unl файлы, созданные после использования dbexport в моей базе данных Informix.

Я это понимаю:

    + Каждый файл относится к другой таблице
    + Каждый файл использует 5 букв и 5 цифр (пример: tbabc01234.unl если имя таблицы tbabcdef).
    + 5 букв - это первые 5 букв имени таблицы.
    + Если имя таблицы содержит менее 5 букв, оно завершается подчеркиванием (пример: tby__01234.unl если имя таблицы tby)

Я хотел бы понять, что означает 5 чисел. Есть ли способ гарантировать, что список генерируется в алфавитном порядке?

1 ответ

Решение

5-значный номер, используемый в файле выгрузки tabid стола.

Я не верю, что есть способ гарантировать, что список генерируется в алфавитном порядке.

Утилиты dbexport и dbimport

Чтобы получить tabid запроса таблицы к таблице системного каталога systables:

SELECT  tabname, tabid
FROM    systables
WHERE   tabname = '<TABNAME>';

Для данного списка:

SELECT  tabname, tabid
FROM    systables
WHERE   tabname IN (
            '<TABNAME1>',
            '<TABNAME2>',
            '<TABNAME3>',
            ...
        )
ORDER BY tabid;

Для всех пользовательских таблиц:

SELECT  tabname, tabid
FROM    systables
WHERE   tabid > 99 
        AND tabtype = 'T'
ORDER BY tabid;

Излишне говорить, что вы можете отменить поиск по tabid:

SELECT  tabname, tabid
FROM    systables
WHERE   tabid = '<TABNAME>';

SELECT  tabname, tabid
FROM    systables
WHERE   tabid IN (
            101,
            102,
            103,
            ...
        )
ORDER BY tabid;

Одним из способов картирования является:

SELECT  tabname, 
        tabid,
        RPAD(SUBSTR(tabname,0, 5), 5, '_')||tabid||'.unl' AS unl_file, 
FROM    systables
WHERE   tabid > 99 
        AND tabtype = 'T'
ORDER BY tabid;

На вопрос, если это хороший подход, это зависит от некоторых вопросов:

  • Сколько таблиц в исходной базе данных?
  • Сколько таблиц вы собираетесь перенести?
  • Процесс должен учитывать отношения между таблицами и данными (PK/FK/Triggers/...).
  • Помните, что в условии хранения упоминается пространство баз данных при использовании ss вариант.
  • ...

Например, если у вас есть база данных с 1000 таблицами и вам нужно только 10, то проще извлечь схему из dbschema, а затем выполнить выгрузку данных.

Вот ссылка на список утилит переноса данных, который поставляется вместе с движком.

Другие вопросы по тегам