SQL:不允许插入表 - 列名

neo*_*neo 0 sql sybase

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

table name: mytable, it has 2 columns: 'ID' and 'Value'.
Run Code Online (Sandbox Code Playgroud)

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

我试过了:

insert into mytable values (mytable.ID, 'y') where mytable.ID='x'
Run Code Online (Sandbox Code Playgroud)

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

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

Tar*_*ryn 5

如果要从表中选择然后插入,那么您将需要使用INSERT INTO..SELECT...FROM:

insert into mytable 
select a.ID, 'y'
from mytable a
where a.value='x';
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo.

我假设你的意思是where子句来检查value='x'不在哪里id.