INSERT INTO SELECT в SQL

  |
 2150

Команда INSERT INTO SELECT використовується для копіювання записів з однієї таблиці до іншої існуючої таблиці. Наприклад:

Тут ми копіюємо всі записи з таблиці Customers до таблиці OldCustomers.

Примітка: Щоб запустити вищезазначений SQL-запит, у базі даних вже повинна бути таблиця з ім’ям OldCustomers, а імена стовпців таблиці OldCustomers і таблиці Customers повинні збігатися. Якщо потрібно скопіювати дані до нової таблиці (не до існуючої), слід використовувати команду SELECT INTO.

Скопіювати лише вибрані стовпці

Ми також можемо скопіювати лише вибрані стовпці з однієї таблиці до іншої. Наприклад:

Тут ми копіюємо дані тільки зі стовпців customer_id та age до таблиці OldCustomers.

Примітка: Якщо в таблиці OldCustomers, крім customer_id та age, є інші стовпці, то значеннями цих стовпців буде NULL.

Скопіювати дані, що відповідають умові

Ми можемо використати оператор WHERE з INSERT INTO для копіювання рядків, які відповідають вказаній умові. Наприклад:

Тут ми копіюємо всі рядки з таблиці Customers, де значенням стовпця country є USA, в таблицю OldCustomers.

Скопіювати дані з двох таблиць в одну

Можна скопіювати дані з двох різних таблиць в одну, використовуючи оператор JOIN з INSERT INTO SELECT. Наприклад:

Тут ми копіюємо customer_id та first_name з таблиці Customers та amount з таблиці Orders в існуючу таблицю OldCustomerOrders.

Примітка: Якщо в існуючій таблиці вже є дані, то будуть додані нові рядки. Стовпці в існуючій таблиці можуть видавати такі помилки, як NOT NULL Constraint Fail, UNIQUE Constraint Failed під час копіювання даних.

Уникайте дублювання даних в INSERT INTO SELECT

Якщо вже є рядок зі схожим значенням, SQL може видати помилку при використанні команди INSERT INTO SELECT. Проте ми можемо пропустити копіювання повторюваних рядків, використовуючи оператор NOT EXISTS. Наприклад:

Тут ми скопіюємо рядок у таблицю лише в тому випадку, якщо customer_id у таблиці не має такого ж значення, яке ми намагаємося скопіювати.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (8 оцінок, середня: 5,00 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *