Резервное копирование и восстановление значений столбцов - PullRequest
1 голос
/ 02 ноября 2010

Мне нужно сделать массовое обновление значения столбца. Если есть проблемы, мне нужно будет вернуть столбец к его предыдущему значению. Поэтому я делаю резервную копию значений во временную таблицу.

Кстати, я использую Oracle.

CREATE TABLE tmp_trial_date_backup AS SELECT cust_id, trial_days FROM customer 
WHERE (trial_days = 0 or trial_days = -99) 

Впоследствии я выполню обновление.

UPDATE customer SET trial_days = 1 WHERE (trial_days = 0 or trial_days = -99)

Мой квест ... Как я могу восстановить значения столбцов из созданной мной таблицы tmp? Do

Ответы [ 2 ]

1 голос
/ 02 ноября 2010

В итоге я сделал следующее.

UPDATE customer c SET trial_days = (SELECT trial_days from tmp_trial_days_backup 
where tmp_trial_days_backup.cust_id = customer_bond.cust_id)
WHERE EXISTS (SELECT 1 from tmp_trial_days_backup tmp WHERE tmp.cust_id = c.cust_id)
1 голос
/ 02 ноября 2010

После обновления сбрасывает триал-дни с customer в базе данных SQL Server.

UPDATE  c
SET     trial_days = tmp.trial_days
FROM    customer c
        INNER JOIN tmp_trial_date_backup tmp ON tmp.cust_id = c.cust_id

Возможно, проще было бы добавить столбец trial_days_backup в таблицу customer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...