Несколько операторов INSERT INTO в одном запросе

0

У меня две таблицы: BT и ST. Вот что я надеюсь, что смогу выполнить:

INSERT INTO BT (c1,c2,c3) values (v1,v2,v3)

ST - таблица с 89 строками и одним столбцом. Может и если да, как я могу сформулировать запрос, чтобы вставка работала для каждого из 89 значений из таблицы ST?

(Имейте в виду: значения являются случайными и не содержат математической связи, с помощью которой я мог бы связать их)

c1-c3 = column1, column2, column3

v1-v3 = value1, value2, value3 (v2 и v3 предопределены и установлены и не требуют изменения)

Я пробовал более очевидные вещи без успеха, например:

INSERT INTO BT (c1,c2,c3) values ((select c1 from ST),v2,v3)

Но вся эта строка возвращает общую синтаксическую ошибку sql.

Я признаю, что это может быть выполнено с 89 строк "INSERT INTO", и я меняю одно значение каждый раз, но можно ли это сделать более элегантным способом?

Я использую MySQL

Теги:
variables
multiple-insert

1 ответ

3
Лучший ответ

Вы просто хотите insert... select insert... select insert... select:

insert into BT (c1, c2, c3) 
   select c1, v2, v3
   from ST
  • 0
    Но ST содержит только значения для v1, тогда как v2 и v3 задаются один раз в запросе. (/ * Ошибка SQL (1241): операнд должен содержать 1 столбец (и) * /) - результат этого предложения
  • 0
    @NikolaPavlovic. , , Я не понимаю Вы можете установить переменные @v1 и @v2 или просто передать константы.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню