поменять местами колонки с пустой таблицей - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть таблица с 15 столбцами и 2 рядами.Я решил поменять столбцы «Месяц» и «Год», чтобы выполнить следующий запрос:

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

Столбец тома был пуст, поэтому я использовал его как временный столбец.Когда я запускаю код, вся таблица становится пустой! Все 15 столбцов!Не могли бы вы сообщить мне, почему это произошло?

Таблица была просто тестовой таблицей, есть ли способ вернуть данные после выполнения неправильного запроса? Или данные потеряны навсегда?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Нет необходимости во временном столбце, вы можете просто поменять местами два столбца:

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

Этот будет работать, так как правая сторона назначения оценивается до запуска обновления,

Онлайн пример: https://rextester.com/TIYDE85991

0 голосов
/ 26 ноября 2018

Странно, что предложение Джарла не сработало, попробуйте 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...