J'ai besoin de renommer la base de données, mais quand je le fais,
PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld"
cela m'a dit que ce n'était pas possible.
Comment puis-je le faire?
( Version 8.3 sur WindowsXP )
Mettre à jour
Le premier message d'erreur: impossible car je m'y suis connecté. J'ai donc sélectionné une autre base de données et effectué les requêtes.
J'obtiens un deuxième message d'erreur m'indiquant que l'utilisateur s'est connecté. Je vois sur l'
PGAdmin
écran qu'il en a beaucoupPID
mais ils sont inactifs ... Je ne vois pas comment les tuer.
sql
postgresql
Patrick Desjardins
la source
la source
Réponses:
Essayez de ne pas citer le nom de la base de données:
Assurez-vous également qu'aucun autre client n'est connecté à la base de données à ce moment-là. Enfin, essayez de publier le message d'erreur qu'il renvoie afin que nous puissions obtenir un peu plus d'informations.
la source
.
ou@
.-
Pour référence future, vous devriez être en mesure de:
Notez que la
pg_stat_activity
colonne de table apid
été nommée commeprocpid
dans les versions antérieures à 9.2. Donc, si votre version de PostgreSQL est inférieure à 9.2, utilisez à laprocpid
place depid
.la source
PostgreSQL 9.3.5 on x86_64-apple-darwin, compiled by i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00), 64-bit
)Je viens de rencontrer ceci et voici ce qui a fonctionné:
1)
pgAdmin
est l'une des sessions. Utilisezpsql
plutôt.2) Arrêtez les services
pgBouncer
et / ou planificateur sous Windows car ils créent également des sessionsla source
Unexist m'a dit en commentaire de redémarrer la base de données et ça marche! Le redémarrage de la base de données a tué toute connexion existante, puis je me suis connecté à une autre base de données et j'ai pu la renommer avec ma requête initiale.
Merci à tous.
la source
Au lieu de déployer une arme nucléaire (redémarrage du serveur), vous devriez essayer de fermer les connexions qui vous dérangent soit en trouvant d'où elles viennent et en fermant les processus clients, soit en utilisant la
pg_cancel_backend()
fonction.la source
Pour toute personne rencontrant ce problème en utilisant DBeaver et recevant un message d'erreur comme celui-ci:
Déconnectez votre connexion actuelle et reconnectez-vous au même serveur avec une connexion qui ne cible pas la base de données que vous renommez.
Changer la base de données active ne suffit pas.
la source