2009/7/16 Fernando de Oliveira <[email protected]>

>  Bom dia a todos,
>
> Não sei como aconteceu, mas no Pg 8.4 de um cliente, apareceu um banco de
> dados sem nome. Preciso excluir ele.
> Tentei renomear para depois excluir, mas não consegui.
> tentei:
> rename to teste
> rename '' to teste
>
> Com o oid, seria possível?
> Existe outra forma de excluir este banco?
>
> ps: Tá rodando em win xp.
>
>
Muito estranho isso... mas de qualquer forma voce pode pegar o OID do banco
e alterar a tabela do catálogo "pg_database":

1) Verificar OID

SELECT oid, datname FROM pg_database;


2) Alterar o nome do banco diretamente no catalogo

UPDATE pg_database SET datname = 'meu_banco_recuperado' WHERE oid = 999999;


-----------------
Agora uma teoria do que pode ter acontecido:

postgres=# create database bdteste ;
CREATE DATABASE

postgres=# \l
               List of databases
          Name           |  Owner   | Encoding
-------------------------+----------+----------
 bdteste                 | postgres | LATIN1
 postgres                | postgres | LATIN1
 template0               | postgres | LATIN1
 template1               | postgres | LATIN1
(4 rows)

postgres=# alter database "bdteste" rename to " ";
ALTER DATABASE

postgres=# \l
               List of databases
          Name           |  Owner   | Encoding
-------------------------+----------+----------
                         | postgres | LATIN1
 postgres                | postgres | LATIN1
 template0               | postgres | LATIN1
 template1               | postgres | LATIN1
(4 rows)

postgres=# alter database " " rename to "bdteste";
ALTER DATABASE

postgres=# \l
               List of databases
          Name           |  Owner   | Encoding
-------------------------+----------+----------
 alegrete_20090627_v110  | postgres | LATIN1
 bdteste                 | postgres | LATIN1
 dbportal_schema_2_1_108 | postgres | LATIN1
 dbportal_schema_2_1_109 | postgres | LATIN1
 dbportal_schema_2_1_110 | postgres | LATIN1
 dbportal_schema_2_2_1   | postgres | LATIN1
 postgres                | postgres | LATIN1
 template0               | postgres | LATIN1
 template1               | postgres | LATIN1
(9 rows)

postgres=# select version();

version
------------------------------------------------------------------------------------------
 PostgreSQL 8.2.13 on i686-pc-linux-gnu, compiled by GCC cc (Ubuntu
4.3.3-5ubuntu4) 4.3.3
(1 row)


Fiz os testes utilizando a versão 8.2.x mas creio que o comportamento seja o
mesmo na 8.3 e 8.4.


Cordialmente,

-- 
Fabrízio de Royes Mello
>> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a