交换到以空白表结尾的列

时间:2018-11-26 15:43:37

标签: sql postgresql sql-update

我有一张15列2行的表格。我决定交换月份和年份列,因此我运行以下查询:

UPDATE test_schema.my_table_name 
SET volume = month_value,
month_value=year_value,
year_value=volume
;

卷列为空,因此我将其用作临时列。当我运行代码时,所有表都为空!所有15列!您能告诉我为什么会这样吗?

该表只是一个测试表,是否有任何方法可以在执行错误的查询后取回数据?或者数据永久丢失?

2 个答案:

答案 0 :(得分:3)

不需要临时列,您只需交换两列即可:

UPDATE test_schema.my_table_name 
   SET year_value = month_value,
       month_value = year_value;

用于在运行更新之前评估作业的右侧。

在线示例:https://rextester.com/TIYDE85991

答案 1 :(得分:1)

奇怪的是jarlh的建议没有奏效,请尝试以下3条语句:

UPDATE test_schema.my_table_name 
SET volume = month_value;
UPDATE test_schema.my_table_name 
SET month_value=year_value;
UPDATE test_schema.my_table_name 
SET year_value=volume;