sql >> Databáze >  >> RDS >> PostgreSQL

Zkrácení všech tabulek v databázi Postgres

FrustratedWithFormsDesigner je správně, PL/pgSQL to umí. Zde je skript:

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;

Tím se vytvoří uložená funkce (musíte to udělat jen jednou), kterou můžete následně používat takto:

SELECT truncate_tables('MYUSER');


  1. Použijte APP_NAME() k získání názvu aplikace aktuální relace na serveru SQL

  2. MySQL IFNULL() Vysvětleno

  3. Odeberte podivné znaky (A s kloboukem) ze sloupce varchar serveru SQL Server

  4. Oracle Update Query pomocí Join