我试图从另一个表中更新表值。我想从productcode
更新pstatus
。SQL更新函数不会抛出任何错误消息,但它不返回任何行
这里是我的代码(没有给出错误,结果0行):
UPDATE pstatus
SET code=(select code FROM productcode)
除此之外,我不能重新运行在SQL任何更新 - 它给没有错误,但返回0行(我在productcode
表中有超过5行)。
我试图从另一个表中更新表值。我想从productcode
更新pstatus
。SQL更新函数不会抛出任何错误消息,但它不返回任何行
这里是我的代码(没有给出错误,结果0行):
UPDATE pstatus
SET code=(select code FROM productcode)
除此之外,我不能重新运行在SQL任何更新 - 它给没有错误,但返回0行(我在productcode
表中有超过5行)。
在这种情况下,你有两个问题
你说你没有在pstatus任何行如果表中没有记录如何可以更新表行?
你的内部查询select code FROM productcode
返回多于一行然后sql如何决定在该字段中设置值?
你的ans帮助我。但是当我在产品代码中插入数据时,pstatus表格不能更新,你能解决这个问题吗? –
如果要使自动更新使用触发器或将外键指定给另一个表 –
更新语句不返回行。您应该使用更类似的东西
Update pstatus
Set code=a.code
from productcode a
where a.*somekeyfield* = *value*
您必须确定您希望用作产品代码的哪一条记录作为更新的基础。什么somekeyfield应该是你需要确定的东西。
我试过这个,但我给了我相同的结果。 0行 –
如果您在pstatus中没有记录,则没有任何更新。您必须先将记录插入pstatus,然后*然后*可以根据需要更新它们。 –
实际上一些DBMS *可以从UPDATE语句返回行(通过使用'RETURNING'子句) –
更新状态修改不会添加记录,它只会更新表中已存在的记录。
update
查询实际上是对表中的所有记录进行了udpate处理,但由于没有记录,所以更新的记录数为零。
如果你想添加的记录,你应该使用一个insert
查询,而不是:
insert into pstatus (code)
select code from productcode
你可以试试这个,它可以工作,但是我的产品代码将会继续,而且其他表格也会从其中插入数据到pstatus。在插入案例数据将被复制 –
@RahatIslamKhan:你的意思是“将继续”是什么意思?如果你想要其他表的数据,你可以使用'join'或'union'将它们添加到'select'中。 – Guffa
这个_should_给你一个'productcode'有一个以上的错误。你使用的是哪个数据库? – Oded
“pstatus”表中是否有任何记录? – Guffa
我正在使用sql。在pstatus上没有任何记录。 –