sql >> Database >  >> RDS >> PostgreSQL

Alle tabellen in een Postgres-database afkappen

FrustratedWithFormsDesigner is correct, PL/pgSQL kan dit. Hier is het script:

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;

Dit creëert een opgeslagen functie (u hoeft dit maar één keer te doen) die u daarna als volgt kunt gebruiken:

SELECT truncate_tables('MYUSER');


  1. SQL DROP TABLE-instructie en verschillende gebruiksscenario's

  2. Hoe RIGHT() werkt in MariaDB

  3. varchar2(n BYTE|CHAR) standaard -> CHAR of BYTE

  4. SQLCipher gebruiken met Android