我試圖從另一個表中更新表值。我想從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上沒有任何記錄。 –