Оператор INSERT с существующими записями - PullRequest
3 голосов
/ 25 февраля 2011

Мне было интересно, возможно ли сделать оператор вставки с записями, которые уже существуют.Например:

insert into tbl(item_name, item_price) values(select item_name, item_price from tbl where id = 5)

Скажите, что id - это автоматически увеличивающийся pk.

Когда я пытаюсь что-то подобное, я получаю ошибки:

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'select'.
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ')'.

Я что-то упустилили это просто невозможно?

Ответы [ 3 ]

6 голосов
/ 25 февраля 2011

Оформить заказ на эту статью: Добавление строк с помощью INSERT и SELECT

В любом случае правильный путь следующий:

insert into tbl(item_name, item_price) 
select item_name, item_price 
  from tbl 
 where id = 5
3 голосов
/ 25 февраля 2011

Попробуйте это:

insert into tbl(item_name, item_price) select item_name, item_price from tbl where id = 5
0 голосов
/ 25 февраля 2011

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

Вот синтаксис для подзапроса: http://dev.mysql.com/doc/refman/5.0/en/subqueries.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...