El pgAdmin III, tiene sucesor, un completamente nuevo pgAdmin 4 que por desgracia esta muuuuuuuuy verde.
Lo pueden encontrar en su sitio: pgadmin.org

Pros:

  • Soporta v9.6
  • Una vez conectado el arbol carga rapido.

Contras:

  • No tiene buscar (ctrl+F), reemplazar, nuevo (ctrl+N; (ctrl+E))
  • No podes importar los servidores registrados en el PGAdmin 3
  • No podes cambiar de solapa con ctrl+tab
  • Tarda en arrancar

SELECT unnest(string_to_array(‘1,2,3,4’, ‘,’))

un string lo transformas a un array y el unnest te lo pone en filitas… bien tecnico

Saludos,

Para copiar una base, primero hay que tenerla sin usuarios conectados… los sacamos:

SELECT
pg_terminate_backend(pid)
–*
FROM
pg_stat_activity
WHERE
pid <> pg_backend_pid()
–and query = ‘COMMIT’
;

Luego, simplemente, creamos una nueva base con plantilla en la de origen:

CREATE DATABASE base_nueva WITH TEMPLATE base_vieja OWNER postgres;

Esto, la crea copiando base, estructura y datos.

 

CREATE FUNCTION get_sa() RETURNS SETOF pg_stat_activity AS
$$ SELECT * FROM pg_catalog.pg_stat_activity; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;

CREATE VIEW pg_stat_activity_allusers AS SELECT * FROM get_sa();

GRANT SELECT ON pg_stat_activity_allusers TO public;

select * from pg_stat_activity_allusers;

n buen resumen de muchisimas funciones de strings, conocidas y desconocidas:
Todo en un PDF:
Por ejemplo, cómo parsear un string separado por comas:
SPLIT_PART ('1,2,3', ',', 2) = '2'
cómo rellenar con ceros:
LPAD ('123', 6, '0') = '000123'
cómo escribir con iniciales mayusculas:
INITCAP ('hi thomas') = 'Hi Thomas'
etc, etc etc.

Ayer Leo necesitaba corregir un sp de XXXX en Produccion.
Me pidio por mantis corregirlo una vez, lo ejecutó y tuvo otro error.

Me pidio por mantis corregirlo otra vez, lo ejecutó y tuvo otro error.
A la tercera me pide permiso para alterar el sp.
Puse el sp como propiedad ya no del usuario “POSTGRES” sino del GRUPO “grupo_escritura”. No es un usuario, es un grupo.
y listo! Lo sigue pudiendo usar el soft, lo puede esitar él y cualquiera con permiso de escritura, sin necesidad de subirle los permisos a nadie.
A favor: Permite tocar sp’s sin ser owner.
En contra: Que cualquiera con permiso escritura de datos toque sp’s (funciones)

Recién tuve que hacer un insert masivo de registros borrados por error (desde Chaco) sobre una tabla de Prevencion PROD que tiene TRIGGGERS.
Tomé los registros de un backup y los inserté pero NO QUIERO QUE SE DISPARE EL TRIGGER yaa que los registros “siempre estuvieron alli y no cambiaron”.
Deshabilitar el trigger de la tabla afecta a todas las sesiones de produccion que la estan usando… respuesta?
SET session_replication_role = replica;

This disables triggers for the current session.

To re-enable for the same session:

SET session_replication_role = DEFAULT;
et voilá!
Es como si “por un rato” mi conexion (y no todas las demas) se comportan como si fuera la conexion de un agente de réplica donde no se disparan triggers al sincronizar bases.

El cambio es muy simple, primero ingresamos al terminal toot linux y ejecutamos

su – postgres

Ya estamos como usuario postgres
Entramos al Postgresql ejecutando
psql template1 postgres

Ahora veamos cual es la codificación actual de las base de datos que tenemos un nuestro servidor digitando lo siguiente:

\l

Debe salir algo similar a lo siguiente:

template1=# \l
Listado de base de datos
Nombre | Dueño | Codificación
———–+———-+————–
PRUEBA | postgres | UTF8
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(4 filas)

Ahora vamos a cambiar el encoder a la Base de Datos PRUEBA, para lo cual vamos a digitar lo siguiente:

update pg_database set encoding=8 where datname='PRUEBA';

Ahora volvemos a listar las Base de Datos digitando: \l y debe aparecer algo similar a:

Listado de base de datos
Nombre | Dueño | Codificación
———–+———-+————–
PRUEBA | postgres | LATIN1
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(4 filas)

Con eso ya tenemos la Base de Datos en LATIN1, ahora, ustedes se preguntarán porque 8 en encoding? les pongo la tabla con el No. de encoding.

postrges

Para que coloquen el valor que les convengan ejemplo si quieren pasar a LATIN9 sería

update pg_database set encoding=16 where datname='PRUEBA';

Basado en la nota de http://ingdesistemasvzla.blogspot.com.ar/2011/02/cambiar-encoding-de-utf-8-latin1-en.html