PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy mogę uruchomić na sucho polecenia sql/sandbox?

W Postgresie możesz wiele zrobić z transakcjami które są cofane na końcu:

BEGIN;

UPDATE foo ...:
INSERT bar ...;
SELECT baz FROM ...;
CREATE TABLE abc...;   -- even works for DDL statements
DROP   TABLE def...;
ALTER  TABLE ghi ...:

ROLLBACK;   -- !

Więcej w instrukcji:BEGIN ROLLBACK

Pamiętaj jednak, że niektórych rzeczy nie można cofnąć. Na przykład sekwencje nie cofają się. Lub kilka specjalnych poleceń, takich jak dblink połączeń.

Niektórych poleceń nie można uruchomić w transakcji z innymi. Podobnie jak CREATE DATABASE lub VACUUM .

Mogą również wystąpić efekty uboczne przy jednoczesnym obciążeniu, takie jak zakleszczenia. Jednak mało prawdopodobne. Możesz ustawić poziom izolacji transakcji zgodnie z Twoimi wymaganiami, aby wykluczyć wszelkie skutki uboczne (przy pewnym koszcie wydajności).

Nie zrobiłbym tego z rozsądnymi danymi. Ryzyko popełnienia przez przypadek jest zbyt duże. A pozwolenie użytkownikom na wykonywanie dowolnego kodu jest ryzykiem, którego trudno jest powstrzymać. Ale dla środowiska szkoleniowego to powinno wystarczyć.

Utwórz kopię zapasową za pomocą bazy danych szablonów . Jeśli coś pójdzie nie tak, jest to najszybszy sposób na przywrócenie stanu podstawowego. Przykład (spójrz na ostatni rozdział):
Obcinanie wszystkich tabel w bazie danych Postgres

Może to być również użyte jako alternatywa brutalnej siły :aby zapewnić nieskazitelną nową bazę danych dla każdego stażysty.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Równoważność z dual w PostgreSQL

  2. Jak czytać z 32-bitowego .mdb z 64-bitowym sterownikiem Pythona i odbc?

  3. Błąd podczas używania polecenia kopiowania w Postgresie (BŁĄD:nieprawidłowa składnia wejściowa dla daty typu:)

  4. problem z uruchomieniem liquibase za pomocą maven i postgres-db

  5. GeoServer nie zapisuje do mojego aktualizowanego widoku PostgreSQL