Использование таблиц
Реструктуризация таблиц командами CREATE TABLE и INSERT INTO
Если таблица, создаваемая командой CREATE TABLE AS, вас почему-либо не устраивает (например, если в таблице необходимо установить ограничения полей), то одну команду CREATE TABLE AS можно заменить двумя командами SQL. Сначала команда CREATE TABLE создает новую таблицу, а затем команда INSERT INTO с запросом SELECT заполняет ее данными (листинг 4.15).
Листинг 4.15. Реструктуризация таблицы командами CREATE TABLE и INSERT INTO.
booktownHf CREATE TABLE new_books ( booktown(# id integer UNIQUE, booktown(# title text NOT NULL. booktown(# authorjd integer. booktown(# subjectjd integer. booktown(# CONSTRAINT books_id_pkey PRIMARY КЕУ (id) booktown(#): NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index ' books Jd_pkey' for table 'new_books' CREATE booktown=# INSERT INTO new_books booktown-# SELECT id, title, author_id, subjectjd booktown-f FROM books; INSERT 0 12 booktown=# ALTER TABLE books RENAME TO old_books; ALTER booktown=# ALTER TABLE new_books RENAME TO books: ALTER booktown=# \d books Table "books" Attribute | Type | Modifier id | integer | not null title (text I not null authorjd integer j subjectjd integer | Index: booksjd_pkey
За дополнительной информацией об использовании команды INSERT INTO с командой SELECT обращайтесь к подразделу "Вставка данных из других таблиц командой SELECT" раздела "Добавление данных командами INSERT и COPY". Команда SELECT рассматривается в разделе "Выборка данных командой SELECT".
Удаление таблиц командой DROP TABLE
В SQL таблицы удаляются командой DROP TABLE. Команда имеет следующий синтаксис (таблица – имя удаляемой таблицы):
DROP TABLE таблица
Использование команды DROP TABLE требует осторожности, поскольку удаление таблицы приводит к уничтожению всех хранящихся в ней данных.
Примечание
Уничтожение таблицы с неявно созданным индексом приводит к уничтожению всех связанных с ней индексов.