Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 交换到列的结果是空表_Sql_Postgresql_Sql Update - Fatal编程技术网

Sql 交换到列的结果是空表

Sql 交换到列的结果是空表,sql,postgresql,sql-update,Sql,Postgresql,Sql Update,我有一个15列2行的表。我决定交换月份和年份列,因此运行以下查询: UPDATE test_schema.my_table_name SET volume = month_value, month_value=year_value, year_value=volume ; Volume列为空,所以我将其用作临时列。当我运行代码时,所有的表都变空了!全部15列!你能告诉我为什么会这样吗 该表只是一个测试表,在运行错误的查询后,有没有办法取回数据?或者数据永久丢失?奇怪的是,jarlh的建议不起

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

UPDATE test_schema.my_table_name 
SET volume = month_value,
month_value=year_value,
year_value=volume
;
Volume列为空,所以我将其用作临时列。当我运行代码时,所有的表都变空了!全部15列!你能告诉我为什么会这样吗


该表只是一个测试表,在运行错误的查询后,有没有办法取回数据?或者数据永久丢失?

奇怪的是,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;

奇怪的是,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;

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

UPDATE test_schema.my_table_name 
   SET year_value = month_value,
       month_value = year_value;
将在运行更新之前评估作业的右侧时起作用


在线示例:

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

UPDATE test_schema.my_table_name 
   SET year_value = month_value,
       month_value = year_value;
将在运行更新之前评估作业的右侧时起作用


在线示例:

不需要临时列,只需更新tablename SET col1=col2,col2=col1。您想在行之间还是列之间交换值?@a_horse_与_No_name我只想交换月份和年份的值columns@jarlh对不起,这不是正确的答案。通过执行查询,两列都将具有第2列值,第1列将为lost@saba:Postgres不是MySQL,jarlh的声明会起作用。不需要中间列。不需要临时列,只需更新tablename SET col1=col2,col2=col1。是否要在行之间或列之间交换值?@a_horse_with_No_name我只想交换月份和年份的值columns@jarlh对不起,这不是正确的答案。通过执行查询,两列都将具有第2列值,第1列将为lost@saba:Postgres不是MySQL,jarlh的声明会起作用。不需要中间柱。