Перенос данных из таблицы в таблицу. 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 (РедОС). Сброс пароля

TRUNCATE / DELETE / DROP или как очистить таблицу

КБК. КВФО - Код вида финансового обеспечения (деятельности)

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

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