sql >> Database teknologi >  >> RDS >> PostgreSQL

Afkortning af alle tabeller i en Postgres-database

FrustratedWithFormsDesigner er korrekt, PL/pgSQL kan gøre dette. Her er scriptet:

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;

Dette opretter en gemt funktion (det skal du kun gøre én gang), som du efterfølgende kan bruge sådan her:

SELECT truncate_tables('MYUSER');


  1. Sådan optimerer du hjemmesidedatabasen

  2. Overførsel af datatabel som parameter til lagrede procedurer

  3. SQL Server CTE og rekursion eksempel

  4. Sådan gendannes en enkelt MySQL-tabel ved hjælp af mysqldump?