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

Sådan dropper du flere tabeller i PostgreSQL ved hjælp af et jokertegn

Brug en kommasepareret liste:

DROP TABLE foo, bar, baz;

Hvis du virkelig har brug for en footgun, vil denne klare sit arbejde:

CREATE OR REPLACE FUNCTION footgun(IN _schema TEXT, IN _parttionbase TEXT) 
RETURNS void 
LANGUAGE plpgsql
AS
$$
DECLARE
    row     record;
BEGIN
    FOR row IN 
        SELECT
            table_schema,
            table_name
        FROM
            information_schema.tables
        WHERE
            table_type = 'BASE TABLE'
        AND
            table_schema = _schema
        AND
            table_name ILIKE (_parttionbase || '%')
    LOOP
        EXECUTE 'DROP TABLE ' || quote_ident(row.table_schema) || '.' || quote_ident(row.table_name) || ' CASCADE ';
        RAISE INFO 'Dropped table: %', quote_ident(row.table_schema) || '.' || quote_ident(row.table_name);
    END LOOP;
END;
$$;

SELECT footgun('public', 'tablename');


  1. mysqldump bedste praksis:Del 1 – MySQL-forudsætninger

  2. Hvordan tæller man antallet af forekomster af en karakter i en Oracle varchar-værdi?

  3. Rails 3.1:Forespørgsel efter postgres inden for et tidsinterval

  4. Sådan fungerer SEC_TO_TIME() i MariaDB