SQL:不允许插入表 - 列名

时间:2013-04-24 15:37:42

标签: sql sybase

好的,也许是一个非常初学者的问题,我有下表

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

这就是我想要做的。我想通过'mytable',找出'Value = x'的条目,对于那些条目,我想添加另一个条目,其中ID等于相同的ID和值= y。

我试过了:

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

但是我收到了一个错误:这里只允许使用常量,常量表达式或变量。列名是非法的

我正在使用Sybase。这样做的正确语法是什么?感谢。

1 个答案:

答案 0 :(得分: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的位置。