Чтение онлайн

на главную - закладки

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

SELECT FNAME, LNAME, HDATE FROM EXT_TBL;

FNAME LNAME HDATE

Claudio Valderrama 01-OCT-2004

! ! !

СОВЕТ. Внешняя функция ASCII_CHAR находится в библиотеке ib_udf в каталоге /UDF каталога инсталляции Firebird. Ее объявление может быть найдено в скрипте ib_udf.sql. Об использовании внешних функций см. главу 21.

. ! .

Конвертирование внешних таблиц во внутренние

Можно

конвертировать данные из внешних таблиц во внутреннюю таблицу посредством выполнения резервного копирования базы данных с помощью утилиты gbak с переключателем -convert (сокращенно -со). Все внешние таблицы, определенные в базе данных, будут конвертированы во внутренние таблицы при изготовлении резервной копии. В этом случае размещение внешней таблицы не будет сохранено.

Подробную информацию см. в главе 38.

Изменение таблиц

Оператор ALTER TABLE используется для изменения структуры таблицы: добавления, изменения или удаления столбцов или ограничений. При необходимости один оператор может выполнять несколько изменений. Для выполнения ALTER TABLE вы должны быть соединены с базой данных как создатель таблицы (ее владелец), пользователь SYSDBA или (в POSIX) как Суперпользователь.

Изменение таблицы или ее триггеров подсчитывается в специальном счетчике. Каждая таблица может изменяться не более 255 раз, после чего вы должны будете выполнить копирование и восстановление базы данных. При этом счетчик изменений не влияет на переключение триггера в активное или неактивное состояние, как при использовании

ALTER TRIGGER имя-триггера ACTIVE | INACTIVE

! ! !

СОВЕТ. Запланируйте выполнение резервного копирования и восстановления после изменений структур таблиц, если база данных содержит данные. Когда изменяется таблица или столбец, Firebird не выполняет преобразования измененного формата. Для упрощения оперативного изменения метаданных он сохраняет новое описание формата и откладывает преобразование, пока данные нужны. Это могло бы оказать непредвиденное влияние на работу пользователей.

. ! .

Подготовка к выполнению ALTER TABLE

Перед модификацией или удалением столбцов или атрибутов в таблице вам нужно выполнить три дела:

1. Убедитесь, что вы имеете соответствующие привилегии к базе данных.

2. Сохраните существующие данные.

3. Удалите любые ограничения зависимостей в столбце.

Изменение столбцов в таблице

Существующие столбцы в таблице могут быть изменены в нескольких отношениях, а именно:

* имя столбца может быть изменено на другое имя, не используемое в таблице;

* столбец может быть "перенесен" на другую позицию в системе упорядочивания столбцов слева направо;

* возможно преобразование несимвольных данных в символьные с некоторыми ограничениями.

Синтаксис

Используйте

следующий синтаксис для ALTER TABLE:

ALTER TABLE таблица

ALTER [COLUMN] имя-простого-столбца изменение;

изменение = новое-имя-столбца | новый-тип-столбца | новая-позиция-столбца

новое-имя-столбца = ТО имя-простого-столбца

новый-тип-столбца = TYPE тип-данных-или-домен

новая-позиция-столбца = POSITION целое

! ! !

ПРИМЕЧАНИЕ. Если вы пытаетесь переименовать столбец, вы можете неожиданно получить проблемы зависимостей, если на столбец существуют ссылки из ограничений или он используется в просмотрах, триггерах или хранимых процедурах.

. ! .

Примеры

Здесь мы изменяем имя столбца с EMP_NO на EMP_NUM:

ALTER TABLE EMPLOYEE

ALTER COLUMN EMP_NO TO EMP_NUM;

/* ключевое слово COLUMN необязательно */

Теперь изменяется позиция столбца:

ALTER TABLE EMPLOYEE

ALTER COLUMN EMP_NUM POSITION 4;

В этот раз тип данных EMP_NUM заменяется с INTEGER на VARCHAR (20):

ALTER TABLE EMPLOYEE

ALTER COLUMN EMP_NUM TYPE VARCHAR(20) ;

Ограничения при изменении типа данных

Firebird не позволит вам изменить тип данных столбца или домена, в результате чего могут потеряться данные.

* Новое определение столбца должно позволять использовать существующие данные. Если, например, новый тип данных имеет слишком много байтов, или не поддерживается преобразование типов данных, то возвращается ошибка, и изменения не выполняются.

* Когда числовые типы преобразуются в строковый тип, каждый числовой тип рассматривается как предмет с минимальной длиной в байтах в соответствии с типом (см. рис. 8.1).

* Преобразование символьных данных в несимвольные недопустимо.

* Столбцы массивов и BLOB не могут быть преобразованы.

! ! !

ВНИМАНИЕ! Любые изменения определения полей могут потребовать пересоздания индексов.

. ! .

Удаление столбцов

Владелец таблицы может использовать ALTER TABLE для удаления определения столбца и его данных из таблицы. Удаление столбца приводит к потере всех хранимых в нем данных. Удаление приводит к немедленному эффекту, независимо от других транзакций, работающих с таблицей. В этом случае другая транзакция продолжается без прерывания, a Firebird откладывает удаление до освобождения таблицы.

Поделиться:
Популярные книги

Кодекс Крови. Книга IV

Борзых М.
4. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IV

Девятый

Каменистый Артем
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Девятый

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина

Саженец

Ланцов Михаил Алексеевич
3. Хозяин дубравы
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Саженец

Свет во мраке

Михайлов Дем Алексеевич
8. Изгой
Фантастика:
фэнтези
7.30
рейтинг книги
Свет во мраке

(Не)свободные, или Фиктивная жена драконьего военачальника

Найт Алекс
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
(Не)свободные, или Фиктивная жена драконьего военачальника

Вамп

Парсиев Дмитрий
3. История одного эволюционера
Фантастика:
рпг
городское фэнтези
постапокалипсис
5.00
рейтинг книги
Вамп

Инвестиго, из медика в маги 2

Рэд Илья
2. Инвестиго
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Инвестиго, из медика в маги 2

Последняя Арена 4

Греков Сергей
4. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 4

Хозяин Теней 2

Петров Максим Николаевич
2. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 2

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Неудержимый. Книга XI

Боярский Андрей
11. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XI

Двойник Короля 2

Скабер Артемий
2. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля 2