Giving examples in the SQL command reference is hard because we don't
have conditionals at the SQL level.
Gavin Sherry
Issuing BEGIN> when already inside a transaction block will
provoke a warning message. The state of the transaction is not affected.
+ To nest transactions within a transaction block, use savepoints
+ (See
+ for more information).
UPDATE employees SET sales_count = sales_count + 1 WHERE id =
(SELECT sales_person FROM accounts WHERE name = 'Acme Corporation');
+
+
+ Attempt to insert a new stock item along with the quantity of stock. If
+ the item exists, update the stock count of the existing item. To do this,
+ use savepoints.
+BEGIN;
+SAVEPOINT sp1;
+INSERT INTO wines VALUES('Chateau Lafite 2003', '24');
+-- Check for unique violation on name
+ROLLBACK TO sp1;
+UPDATE wines SET stock = stock + 24 WHERE winename='Chateau Lafite 2003';
+COMMIT;