PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Съкращаване на всички таблици в база данни на Postgres

FrustratedWithFormsDesigner е правилен, PL/pgSQL може да направи това. Ето скрипта:

CREATE OR REPLACE FUNCTION truncate_tables(username IN VARCHAR) RETURNS void AS $$
DECLARE
    statements CURSOR FOR
        SELECT tablename FROM pg_tables
        WHERE tableowner = username AND schemaname = 'public';
BEGIN
    FOR stmt IN statements LOOP
        EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.tablename) || ' CASCADE;';
    END LOOP;
END;
$$ LANGUAGE plpgsql;

Това създава съхранена функция (трябва да направите това само веднъж), която след това можете да използвате по следния начин:

SELECT truncate_tables('MYUSER');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Аргументи на командния ред на PSQL в DO скрипт

  2. PostgreSQL заявката е много бавна с ограничение 1

  3. Изпълнете PostgreSQL .sql файл с помощта на аргументи на командния ред

  4. psycopg2 изтичаща памет след голяма заявка

  5. Как работи make_timestamptz() в PostgreSQL