Соглашение об именах файлов.unl
Я хотел бы понять, какое правило применяется к соглашению об именах .unl
файлы, созданные после использования dbexport
в моей базе данных Informix.
Я это понимаю:
- + Каждый файл относится к другой таблице
- + Каждый файл использует 5 букв и 5 цифр (пример:
tbabc01234.unl
если имя таблицы tbabcdef
). - + 5 букв - это первые 5 букв имени таблицы.
- + Если имя таблицы содержит менее 5 букв, оно завершается подчеркиванием (пример:
tby__01234.unl
если имя таблицы tby
) Я хотел бы понять, что означает 5 чисел. Есть ли способ гарантировать, что список генерируется в алфавитном порядке?
1 ответ
5-значный номер, используемый в файле выгрузки tabid
стола.
Я не верю, что есть способ гарантировать, что список генерируется в алфавитном порядке.
Чтобы получить 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, а затем выполнить выгрузку данных.
Вот ссылка на список утилит переноса данных, который поставляется вместе с движком.