pg11官方文档笔记-高级特性

  1、在PostgreSQL中,开启一个事务需要将SQL命令用BEGINCOMMIT命令包围起来。如果我们没有发出BEGIN命令,则每个独立的语句都会被加上一个隐式的BEGIN以及(如果成功)COMMIT来包围它。也可以利用保存点SAVEPOINT来以更细的粒度来控制一个事务中的语句,可以在必要时利用ROLLBACK TO回滚到该保存点,ROLLBACK TO是唯一的途径来重新控制一个由于错误被系统置为中断状态的事务块,而不是完全回滚它并重新启动。

BEGIN;
UPDATE accounts SET balance = balance - 100.00
    WHERE name = 'Alice';
SAVEPOINT my_savepoint;
UPDATE accounts SET balance = balance + 100.00
    WHERE name = 'Bob';
-- oops ... forget that and use Wally's account
ROLLBACK TO my_savepoint;
UPDATE accounts SET balance = balance + 100.00
    WHERE name = 'Wally';
COMMIT;

2、继承
CREATE TABLE cities (
  name       text,
  population real,
  altitude   int     -- (in ft)
);

CREATE TABLE capitals (
  state      char(2)
) INHERITS (cities);
注:capitals的行从它的父亲cities继承了所有列(namepopulationaltitude
3、
posted @ 2022-06-29 09:15  白鹿上仙  阅读(230)  评论(0)    收藏  举报