我有一张名为_field
的表格。现在,由于某种原因,名为block
的表中的字段变得混乱,现在包含错误的块编号。
我有_field
的默认数据,但由于外部约束和内容,一些其他字段不能再默认,因此,我不能只恢复默认数据。
所以,现在,我创建了一个名为tmp_field
的新表,并使用默认的_field
数据填充它。
现在,我需要一个获取_field
数据的查询,并更改block
中的所有_field
个数字,以匹配block
中的tmp_field
个数字}。
另一种表达方式是:
它检查_field
的每一行,如果某个字段(如fieldid
或name
)与tmp_field
中的相同字段匹配,则会更改{{1}中的块值匹配_field
中的块值。
注意:我使用的是Postgresql 9.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