Перенос данных из таблицы в таблицу. SQL


Если поля совпадают:
INSERT INTO <table_1>
SELECT *
FROM <table_2>

Если поля не совпадают:
INSERT INTO <table_1> (field1, field2, ..., fieldN)
SELECT field1, field2, ..., fieldN FROM <table_2>
Дополнение:

Как оказалось, в некоторых случаях (при выполнении очистки таблиц из БД) перенос в table_2 происходит без ошибок. А после того как пытаешься вернуть данные из временной таблицы в исходную (table_1) происходит ошибка типа: несовместимые типы данных: ожидается DATE, получено NUMBER

Как оказалось, после пересоздания table_1 столбцы стоят в разной последовательности (не той, что была задана в запросе на создание). Поэтому в этом случае лучше использовать второй вариант, жестко указывая поля, из которых будут браться данные и в те, что будут вставляться.

В рамках очистки данных из таблиц (уменьшение размера БД) выполняются мероприятия:

Так вот, создание временной таблицы может выручить при удалении таблицы MSG. Можно сохранить актуальную информацию за последние месяцы.

Комментарии

  1. Это все прекрасно, до того момента как попадается тип поля в таблице TimeStamp

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Linux (РедОС). Сброс пароля

ТФФ 35.0. Полный перечень документов альбома ТФФ (Таблица 2)

ТФФ 34.0. Полный перечень документов альбома ТФФ (Таблица 2)

SQL Error [53200]: ОШИБКА: нехватка разделяемой памяти Подсказка: Возможно, следует увеличить параметр max_locks_per_transaction

РедОС. Подключение к сетевой папке