Иллюстрированный самоучитель по PostgreSQL

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

Реструктуризация таблиц командами 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 требует осторожности, поскольку удаление таблицы приводит к уничтожению всех хранящихся в ней данных.

Примечание
Уничтожение таблицы с неявно созданным индексом приводит к уничтожению всех связанных с ней индексов
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.