Pour tuer une requête il y a deux possibilité :

  1. par une commande shell
  2. par une commande sql

 

  • Par la commande shell kill :
    • kill <pid_process>

 /!\ NE JAMAIS FAIRE un kill -9 /!\

  • Par une commande sql :
    • commancer par la commande : select pg_cancel_backend(<pid_process>)
    • si cela n'est pas suffisant passer la commande : select pg_terminate_backend(<pid_process>)

Le but est de récupérer le résultat d'une requête dans un fichier dans un format particulier :

Pré-requis : se connecter avec un compte superuser, et aller dans la base concernée.

  •  Format csv avec entête des colonnes :

requête :

copy (<ecrire_ici_la_requête>) to '</directory/du/fichier/résultat.csv>' with header csv ;

ex : copy (select * from alf_content_url ) to '/tmp/test.csv' with header csv ;

  • Format csv sans entête des colonnes :

requête :

copy (<ecrire_ici_la_requête>) to '</directory/du/fichier/résultat.csv>' with csv ;

ex : copy (select * from alf_content_url ) to '/tmp/test.csv' with csv ;

  •  Format texte avec entête des colonnes et séparateur de notre choix :

requête :

copy (<ecrire_ici_la_requête>) to '</directory/du/fichier/résultat.txt>' with header delimiter '<symbole>' csv ;

ex : copy (select * from alf_content_url ) to '/tmp/test.txt' with header delimiter '|' csv ;

Pour copier une base de données en une commande sur le même moteur postgresql.

  • Copie à l'identique, utilisez la commande sql :
    create database <nom_nouvelle_base> with template <base_convoitée> ;
  • Copie en changeant le tablespace et le propriétaire , utilisez la commande sql :
    create database <nom_nouvelle_base> with template <base_convoitée> tablespace <nouveau_tablespace> owner <nouveau_propriétaire>;

Sur le modèle ci-dessus on peut changer soit le tablespace uniquement soit le propriétaire uniquement ou les deux...

Ce site est juste une compilation de notes qui sert d'aide mémoire.

Pour ne pas oublier