Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Eliminar todas las tablas de una base de datos PostgreSQL

Estas en el tema de Eliminar todas las tablas de una base de datos PostgreSQL en el foro de PostgreSQL en Foros del Web. Hola tengo una consulta, resulta que hay siempre cambios en las tablas de mi base de datos, se le agrega mas tablas para el proyecto, ...
  #1 (permalink)  
Antiguo 19/09/2012, 09:18
Avatar de Sumerio  
Fecha de Ingreso: octubre-2009
Mensajes: 195
Antigüedad: 15 años, 1 mes
Puntos: 6
Pregunta Eliminar todas las tablas de una base de datos PostgreSQL

Hola tengo una consulta, resulta que hay siempre cambios en las tablas de mi base de datos, se le agrega mas tablas para el proyecto, pero tengo que estar usando:

drop table cascade

Hay una forma mas rapida de dejar vacia la Base de Datos, el problema es que no puedo borrar la BD porque esta usando una extension de Postgis, tiene todas esas funciones geometry.

Alguien sabra otra forma.
  #2 (permalink)  
Antiguo 19/09/2012, 10:00
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Eliminar todas las tablas de una base de datos PostgreSQL

No tengo postgres a la mano, pero sería algo así:


Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCION borrar_tablas(nombre_db TEXT) AS
  2.  
  3. BEGIN
  4. FOR cur IN (SELECT TABLE_NAME FROM information_schema.TABLES WHERE database_name=nombre_db) LOOP
  5.     EXECUTE 'DROP TABLE '||cur.TABLE_NAME||' CASCADE';
  6. END LOOP;
  7. END;

No recuerdo bien los campos de la tabla information_schema.tables
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 20/09/2012, 12:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 83
Antigüedad: 14 años
Puntos: 4
Respuesta: Eliminar todas las tablas de una base de datos PostgreSQL

Si estas en linux puedes hacer algo asi:

Código:
for i in `psql foo -tc "select tablename from pg_tables where schemaname='public'"`; do psql foo -c "drop table $i cascade"; done;
Estoy asumiendo que tus tablas estan en public. Solo cambiarias foo por el nombre de tu db.

En windows supongo que con powershell puedes hacer algo similar.

Etiquetas: funcion, tablas, todas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:02.