Вы не можете, если не запустили его внутри trans action .
В зависимости от вашей СУБД транзакции будут обрабатываться по-разному, поэтому прочтите документацию. Например, с mysql вот как это происходит:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
С Postresql :
BEGIN;
UPDATE accounts SET balance = balance - 100.00
WHERE name = 'Alice';
-- etc etc
COMMIT;
С TSQL :
DECLARE @TranName VARCHAR(20)
SELECT @TranName = 'MyTransaction'
BEGIN TRANSACTION @TranName
GO
USE pubs
GO
UPDATE roysched
SET royalty = royalty * 1.10
WHERE title_id LIKE 'Pc%'
GO
COMMIT TRANSACTION MyTransaction
GO
Существуют также некоторые действия, которые нельзя ввести в транзакцию, но в большинстве систем управления базами данных, которые вы можете найти в эти дни, вы сможете откатить update
.
Наконец, вы всегда можете отменить обновление, если ведете точный журнал всего, что происходит в базе данных, но это уже другая история.