PostgreSQL/Transaction/Abort — различия между версиями

Материал из SQL эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Версия 13:45, 26 мая 2010

Use ABORT to undo an accidental DELETE command

postgres=#
postgres=#
postgres=# CREATE TABLE "books" (
postgres(#      "id"           integer NOT NULL,
postgres(#      "title"        text NOT NULL,
postgres(#      "author_id"    integer,
postgres(#      "subject_id"   integer,
postgres(#      Constraint "books_id_pkey" Primary Key ("id")
postgres(# );
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "books_id_pkey" for table "books"
CREATE TABLE
postgres=#
postgres=#
postgres=# insert into books values (7808,  "Java",                  4156, 9);
INSERT 0 1
postgres=# insert into books values (4513,  "Javascript",            1866, 15);
INSERT 0 1
postgres=# insert into books values (4267,  "C#",                    2001, 15);
INSERT 0 1
postgres=# insert into books values (1608,  "Oracle",                1809, 2);
INSERT 0 1
postgres=# insert into books values (1590,  "Sql Server",            1809, 2);
INSERT 0 1
postgres=# insert into books values (25908, "Postgre SQL",          15990, 2);
INSERT 0 1
postgres=# insert into books values (1501,  "Python",                2031, 2);
INSERT 0 1
postgres=# insert into books values (190,   "Java by API",             16, 6);
INSERT 0 1
postgres=# insert into books values (1234,  "2D",                   25041, 3);
INSERT 0 1
postgres=# insert into books values (2038,  "C",                     1644, 0);
INSERT 0 1
postgres=# insert into books values (156,   "C++",                    115, 9);
INSERT 0 1
postgres=# insert into books values (41473, "Programming Python",    7805, 4);
INSERT 0 1
postgres=# insert into books values (41477, "Learning Python",       7805, 4);
INSERT 0 1
postgres=# insert into books values (41478, "Perl Cookbook",         7806, 4);
INSERT 0 1
postgres=# insert into books values (41472, "Practical PostgreSQL",  1212, 4);
INSERT 0 1
postgres=#
postgres=# select * from books;
  id   |        title         | author_id | subject_id
-------+----------------------+-----------+------------
  7808 | Java                 |      4156 |          9
  4513 | Javascript           |      1866 |         15
  4267 | C#                   |      2001 |         15
  1608 | Oracle               |      1809 |          2
  1590 | Sql Server           |      1809 |          2
 25908 | Postgre SQL          |     15990 |          2
  1501 | Python               |      2031 |          2
   190 | Java by API          |        16 |          6
  1234 | 2D                   |     25041 |          3
  2038 | C                    |      1644 |          0
   156 | C++                  |       115 |          9
 41473 | Programming Python   |      7805 |          4
 41477 | Learning Python      |      7805 |          4
 41478 | Perl Cookbook        |      7806 |          4
 41472 | Practical PostgreSQL |      1212 |          4
(15 rows)
postgres=#
postgres=#
postgres=# -- Use ABORT to undo an accidental DELETE command:
postgres=#
postgres=# BEGIN WORK;
BEGIN
postgres=# DELETE FROM books;
DELETE 15
postgres=# ABORT WORK;
ROLLBACK
postgres=#
postgres=# select * from books;
  id   |        title         | author_id | subject_id
-------+----------------------+-----------+------------
  7808 | Java                 |      4156 |          9
  4513 | Javascript           |      1866 |         15
  4267 | C#                   |      2001 |         15
  1608 | Oracle               |      1809 |          2
  1590 | Sql Server           |      1809 |          2
 25908 | Postgre SQL          |     15990 |          2
  1501 | Python               |      2031 |          2
   190 | Java by API          |        16 |          6
  1234 | 2D                   |     25041 |          3
  2038 | C                    |      1644 |          0
   156 | C++                  |       115 |          9
 41473 | Programming Python   |      7805 |          4
 41477 | Learning Python      |      7805 |          4
 41478 | Perl Cookbook        |      7806 |          4
 41472 | Practical PostgreSQL |      1212 |          4
(15 rows)
postgres=#
postgres=# drop table books;
DROP TABLE
postgres=#
postgres=#
postgres=#