Exécuter des instructions SQL depuis un fichier

Il est souvent intéressant d'exécuter un fichier contenant une liste de commandes SQL, plutôt que de les entrer une par une dans le terminal. Cela permet en particulier de recréer une base de données à partir du script de création des tables.

Syntaxe

Pour exécuter un fichier contenant du code SQL utiliser la commande PostgreSQL \i chemin/fichier.sql

  • chemin désigne le répertoire dans lequel est le fichier fichier.sql

  • le dossier de travail de psql est le dossier dans lequel il a été lancé, le script peut être lancé à partir de son dossier home pour en être indépendant (~/.../fichier.sql)

  • chaque commande doit être terminée par un ;

1
dbnf17p015=> \i /home/me/bdd.sql

MéthodeProgrammer une base de données avec PostgreSQL

Pour programmer une base de données sous PostgreSQL, voici une méthode générale :

  • Rendez-vous dans un répertoire de travail : cd /home/me/bdd1

  • Créez ou ouvrez un fichier texte avec un éditeur colorisant : atom fichier.sql

  • Ouvrez un terminal et exécutez votre client psql

  • Écrivez votre code SQL, et testez-le au fur et à mesure : \i fichier.sql

ConseilTester votre code régulièrement

Afin de tester régulièrement votre base de données, pensez à insérer en début de script des instruction de destruction des tables.

On supprime les tables dans l'ordre inverse de leur création, on peut ajouter la clause IF EXISTS afin d'éviter les erreurs lorsqu'une exécution précédente avait déjà échoué.

1
DROP TABLE IF EXISTS t2 ;
2
DROP TABLE IF EXISTS t1 ;
3
CREATE TABLE t1 (a VARCHAR PRIMARY KEY);
4
CREATE TABLE t2 (a VARCHAR REFERENCES t1(a));