2011-10-24 17 views
0

我有一個表_field。現在,出於某種原因,表格中名爲block的字段變得混亂,現在包含錯誤的塊號。 我有_field的默認數據,但其他一些字段由於受到外部約束和其他因素的影響而不再處於默認狀態,所以我不能恢復默認數據。 因此,現在我創建了一個名爲tmp_field的新表,並使用默認的_field數據填充它。我需要更新表格的ID字段,而不觸及任何其他字段

現在,我需要一個查詢,從_field獲取數據和更改所有block數字的_fieldblock人數從tmp_field匹配。

另一種方式來短語這將是:
它檢查的_field每一行,並且如果某些字段(如fieldidname)在tmp_field同一字段匹配,則它改變在_field塊的值相匹配的值在tmp_field區塊。

注意:我正在使用Postgresql 9.1。

謝謝你的一切。

回答

2
UPDATE _field 
    SET block = tmp_field.block 
    FROM tmp_field 
    WHERE _field.fieldid = tmp_field.fieldid 
     OR _field.name = tmp_field.name 
+0

哦,謝謝,特別是對於快速反應。我嘗試了類似的東西,但它不起作用,因爲我不知道「FROM」子句。另外,'fieldid'需要是'_field.fieldid',與'name'一樣,但是,這是有效的。謝謝一堆。 – zermy

+0

@zermy:根據您的評論更新答案。 –

相關問題