BEGIN;SAVEPOINT before_update;UPDATE accounts SET balance = balance -100WHERE id =1;UPDATE accounts SET balance = balance +100WHERE id =2;-- 模拟错误检测-- ROLLBACK TO before_update;COMMIT;
五、JSON操作
-- 创建JSON字段表CREATETABLE products (id SERIALPRIMARYKEY,details JSONB NOTNULL);-- JSON路径查询SELECT details->>'name'AS product_name,details->'specs'->'weight'AS weight
FROM products
WHERE details @>'{"category": "electronics"}';
-- 创建角色CREATE ROLE analyst WITHLOGINPASSWORD 'secure123'VALID UNTIL '2025-12-31';-- 授权表访问GRANTSELECT,INSERTON employees TO analyst;-- 查看权限
\dp employees