Однако бывают ситуации, когда заранее известно, что возможна попытка удаления
несуществующей таблицы. В таких случаях обычно стараются избежать ненужных со-
общений об ошибке отсутствия таблицы. Делается это путем добавления в команду
DROP TABLE фразы IF EXISTS. Например:
DROP TABLE IF EXISTS aircrafts CASCADE;
При использовании этой фразы в случае наличия интересующей нас таблицы выпол-
няется ее удаление, в случае же ее отсутствия выводится замечание, а не ошибка, а
также сообщение об успешном выполнении команды удаления таблицы:
ЗАМЕЧАНИЕ: таблица "aircrafts" не существует, пропускается
DROP TABLE
5.3 Модификация таблиц
Модифицировать таблицы приходится по различным причинам. Например, при
необходимости добавить к какому-нибудь атрибуту ограничение DEFAULT, т. е. зна-
чение «по умолчанию». Конечно, если в таблицах еще нет данных, то их можно просто
пересоздать, внеся изменения в их определения. Но если таблицы содержат большое
количество строк, то пересоздать их не всегда возможно, в этом случае на помощь
приходит команда ALTER TABLE.
Эта команда очень многообразна и логична. Она предусматривает, наверное, все си-
туации, которые могут возникнуть в реальной работе. Например, может возникнуть
необходимость добавить новый столбец в таблицу — команда ALTER TABLE имеет для
этого фразу ADD COLUMN. Возможна и обратная ситуация, когда нужно удалить стол-
бец из таблицы — для этого есть фраза DROP COLUMN. Если нужно добавить ограни-
чение, то помогут фразы ADD CHECK и ADD CONSTRAINT. Если потребовался внеш-
ний ключ, то можно добавить и его.
В качестве объектов для экспериментов будем использовать таблицы базы данных
«Авиаперевозки».
Предположим, что нам понадобилось иметь в базе данных сведения о крейсер-
ской скорости полета всех моделей самолетов, которые эксплуатируются в нашей
авиакомпании. Следовательно, необходимо добавить столбец в таблицу «Самолеты»
(aircrafts). Дадим ему имя speed (наверное, можно предложить и более длинное имя —
cruise_speed). Тип данных для этого столбца выберем integer, добавим ограничение
NOT NULL. Наложим и ограничение на минимальное значение крейсерской скоро-
сти, выраженное в километрах в час: CHECK( speed >= 300 ). В результате сформируем
такую команду для добавления столбца:
Достарыңызбен бөлісу: