我需要更新表的id字段,而不触及任何其他字段

时间:2011-10-24 20:39:23

标签: sql postgresql

我有一张名为_field的表格。现在,由于某种原因,名为block的表中的字段变得混乱,现在包含错误的块编号。 我有_field的默认数据,但由于外部约束和内容,一些其他字段不能再默认,因此,我不能只恢复默认数据。 所以,现在,我创建了一个名为tmp_field的新表,并使用默认的_field数据填充它。

现在,我需要一个获取_field数据的查询,并更改block中的所有_field个数字,以匹配block中的tmp_field个数字}。

另一种表达方式是: 它检查_field的每一行,如果某个字段(如fieldidname)与tmp_field中的相同字段匹配,则会更改{{1}中的块值匹配_field中的块值。

注意:我使用的是Postgresql 9.1。

感谢您的一切。

1 个答案:

答案 0 :(得分:2)

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