2013-04-24 3 views
0

Хорошо, может быть действительно Новичка вопрос, у меня есть следующая таблицаSQL: Вставить таблицу - имя столбца не допускается

table name: mytable, it has 2 columns: 'ID' and 'Value'. 

Вот что я хочу сделать. Я хочу пройти «mytable», узнать записи, где «Value = x», и для этих записей я хочу добавить еще одну запись, где идентификатор равен одному ID и значениям = y.

Я пробовал:

insert into mytable values (mytable.ID, 'y') where mytable.ID='x' 

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

Я использую Sybase. для чего нужен правильный синтаксис? Благодарю.

+0

Вам нужно использовать sub select в значениях id ... например, Вставить в значения mytable ((выберите id из mytable, где condition = 'y'), 'y'), где mytable.ID = 'x ' – diagonalbatman

ответ

5

Если вы хотите, чтобы выбрать из таблицы, а затем вставить, то вы будете хотеть использовать INSERT INTO..SELECT...FROM:

insert into mytable 
select a.ID, 'y' 
from mytable a 
where a.value='x'; 

См SQL Fiddle with Demo.

Я предполагаю, что вы имели в виду предложение where, чтобы проверить, где value='x' не id.

Смежные вопросы