PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bisakah saya menjalankan perintah sql run/sandbox?

Di Postgres, Anda dapat melakukan banyak hal dengan transaksi yang diputar kembali di akhir:

BEGIN;

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

ROLLBACK;   -- !

Selengkapnya di manual:BEGIN ROLLBACK

Ketahuilah bahwa beberapa hal tidak dapat dibatalkan. Untuk contoh urutan tidak memutar kembali. Atau beberapa perintah khusus seperti dblink panggilan.

Dan beberapa perintah tidak dapat dijalankan dalam transaksi dengan orang lain. Seperti CREATE DATABASE atau VACUUM .

Juga, mungkin ada efek samping dengan beban bersamaan, seperti kebuntuan. Tidak mungkin, meskipun. Anda dapat menyetel tingkat isolasi transaksi dengan kebutuhan Anda untuk mengesampingkan efek samping apa pun (dengan mengorbankan kinerja).

Saya tidak akan melakukan ini dengan data yang masuk akal. Risiko melakukan secara tidak sengaja terlalu besar. Dan membiarkan pengguna mengeksekusi kode arbitrer adalah risiko yang hampir tidak dapat ditahan. Tapi untuk lingkungan pelatihan, itu sudah cukup baik.

Cadangkan dengan basis data template . Jika terjadi kesalahan, itulah cara tercepat untuk memulihkan keadaan dasar. Contoh (lihat bab terakhir):
Memotong semua tabel di database Postgres

Ini juga dapat digunakan sebagai kekuatan alternatif :untuk menyediakan database baru yang murni untuk setiap peserta pelatihan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pilih nilai maks dan min setiap x jumlah baris-postgresql

  2. apakah ada cara untuk menghindari panggilan nextval() jika penyisipan gagal di PostgreSQL?

  3. Mengapa fungsi PL/pgSQL memiliki efek samping, sedangkan fungsi SQL tidak?

  4. Bagaimana cara memastikan entri dengan rentang waktu yang tidak tumpang tindih?

  5. SQL - Cara keluar dari tanda kurung di PostgreSQL