96 votes

Comment importer des fichiers *.sql existants dans PostgreSQL 8.4 ?

J'utilise PostgreSQL 8.4, et j'ai quelques fichiers *.sql à importer dans une base de données. Comment puis-je le faire ?

134voto

Bolo Points 5671

Depuis la ligne de commande :

psql -f 1.sql
psql -f 2.sql

De la psql rapide :

\i 1.sql
\i 2.sql

Notez que vous devrez peut-être importer les fichiers dans un ordre spécifique (par exemple : définition des données avant manipulation des données). Si vous avez bash shell (GNU/Linux, Mac OS X, Cygwin) et les fichiers peuvent être importés dans l'ordre alphabétique vous pouvez utiliser cette commande :

for f in *.sql ; do psql -f $f ; done

Voici la documentation du psql (merci, Frank) : http://www.postgresql.org/docs/current/static/app-psql.html

75voto

moon Points 2512

Dans la ligne de commande atteignez d'abord le répertoire où psql est présent puis écrivez des commandes comme ceci :

psql [database name] [username]

et ensuite appuyez sur entrée psql demande le mot de passe donnez le mot de passe de l'utilisateur :

puis écrire

> \i [full path and file name with extension]

puis appuyez sur entrée insertion faite.

39voto

Arslan Ali Points 1262

Eh bien, le chemin le plus court que je connaisse est le suivant :

psql -U {user_name} -d {database_name} -f {file_path} -h {host_name}

nom_de_base_de_données : Dans quelle base de données devez-vous insérer les données de votre fichier.

chemin_fichier : Chemin absolu du fichier par lequel vous voulez effectuer l'importation.

nom_hôte : Le nom de l'hôte. À des fins de développement, il s'agit le plus souvent de localhost .

En entrant cette commande dans la console, vous serez invité à entrer votre mot de passe.

25voto

sofiane Points 131

Soyez prudent avec "/" et "\". Même sous Windows, la commande doit être sous la forme :

\i c:/1.sql

1voto

Ted Rybicki Points 11

J'ai toujours préféré utiliser un dossier de service de connexion (lookup/google 'psql connection service file')

Alors, tout simplement :

psql service={yourservicename} < {myfile.sql}

yourservicename est un nom de section du fichier de service.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X