PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak usunąć wiele tabel w PostgreSQL za pomocą symbolu wieloznacznego?

Użyj listy oddzielonej przecinkami:

DROP TABLE foo, bar, baz;

Jeśli naprawdę potrzebujesz footguna, ten wykona swoje zadanie:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można połączyć się z Postgresem przez PHP, ale można połączyć się z wiersza poleceń i PgAdmina na innym komputerze

  2. Blok anonimowego kodu PL/pgSQL

  3. Generowanie szeregów czasowych między dwiema datami w PostgreSQL

  4. jak skopiować dane z pliku do PostgreSQL za pomocą JDBC?

  5. Uruchom plik PostgreSQL .sql za pomocą argumentów wiersza poleceń