Пример использования INSERT ... SELECT:

Ответить
ya
^-^
Сообщения: 2675
Зарегистрирован: 16 дек 2021, 19:56

Пример использования INSERT ... SELECT:

Сообщение ya »

Код: Выделить всё

INSERT INTO target_table (column1, column2, column3)
SELECT column1, column2, column3
FROM source_table
WHERE some_condition;
Пример "одним запросом" с условием
Допустим, у вас есть таблица users, и вы хотите скопировать всех пользователей из определенной страны в таблицу users_backup:

Код: Выделить всё

INSERT INTO users_backup (id, name, country)
SELECT id, name, country
FROM users
WHERE country = 'USA';
Важные моменты:
Столбцы должны совпадать по типам и порядку.
Можно добавлять WHERE, JOIN и другие конструкции в SELECT.
Если нужно более сложное поведение, например, вставка только новых записей или обновление существующих, то обычно используют INSERT ... ON DUPLICATE KEY UPDATE или REPLACE INTO.
ya
^-^
Сообщения: 2675
Зарегистрирован: 16 дек 2021, 19:56

Re: Пример использования INSERT ... SELECT:

Сообщение ya »

Код: Выделить всё

-- Объявление переменной
SET @external_value = 'значение из переменной';

-- Вставка данных из переменной и другой таблицы
INSERT INTO target_table (column1, column2)
SELECT @external_value, t.source_column
FROM neighbor_table t
WHERE some_condition;

Код: Выделить всё

// Предположим, у вас есть переменная
std::string external_value = "значение из переменной";

// И SQL-запрос
std::string query = "INSERT INTO target_table (column1, column2) "
                    "SELECT '" + external_value + "', source_column FROM neighbor_table WHERE some_condition";
Ответить