Vous n'êtes pas identifié(e).

#1 Re : Général » Nom de tables et mots reservés » 06/04/2009 22:06:15

J'ai pu refaire un dump de la table "table" vers un script sql (sans compressio).
En modifiant dans le script le 'copy table (..' en 'copy "table" (...' le script a correctement fonctionné et les données ont été insérées.
Je vais me satisfaire de cette solution pour l'instant.
Merci de votre aide.

#2 Re : Général » Nom de tables et mots reservés » 05/04/2009 23:07:27

J'utilise bien une version 8.3.7 de pg_restore. Mais le dump a été fait avec une version 8.1. Je vais essayer de le refaire (le dump) avec une version 8.3.7.

#3 Re : Général » Nom de tables et mots reservés » 05/04/2009 18:18:16

J'ai oublié de mettre le message d'erreur dans pg_restore :

C:\Travail>pg_restore -d mabase -a -t "table"  mabase.dmp
pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») :
pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 2711 ; 0 16995 TABLE DATA table postgres
pg_restore: [programme d'archivage (db)] could not execute query: ERROR:  syntax error at or near "table"
LIGNE 2 : COPY table (...
               ^
    Command was:
COPY table (...
ATTENTION : erreurs ignorées lors de la restauration : 1

C:\Travail>

#4 Re : Général » Nom de tables et mots reservés » 05/04/2009 18:13:13

Merci pour la réponse.
Je viens de ré-essayer la requête sous psql:

gr=#
gr=# CREATE TABLE table (c1 integer);
ERROR:  syntax error at or near "table"
LIGNE 1 : CREATE TABLE table (c1 integer);
                       ^
gr=# CREATE TABLE "table" (c1 integer);
CREATE TABLE
gr=#

(Dans psql le repère de l'erreur est sous le mot "table").

Sous pgAdmin j'ai le même résultat avec en plus le code d'erreur :

ERROR:  syntax error at or near "table"
LINE 1: CREATE TABLE table (c1 integer);
                     ^

********** Erreur **********

ERROR: syntax error at or near "table"
État SQL :42601
Caractère : 14

En espérant que cela vous éclaire.

#5 Général » Nom de tables et mots reservés » 05/04/2009 16:45:07

kamouka
Réponses : 7

Bonjour,

J'utilise Postgresql 8.3 sous windows XP. Je souhaite créer une table nommée "table" dans une base de données afin de pouvoir y restaurer  ensuite des données via un pg_restore. Je n'ai pas la main sur ce dump et donc le nom de table "table" m'est imposé.

Je peux créer la table en faisant un :
CREATE TABLE "table" (...);

Mais ensuite le pg_restore :

pg_restore -d mabase -a -t "table"  mabase.dmp
ou
pg_restore -d mabase -a -t table mabase.dmp

se plante avec une erreur de syntaxe sur le nom de la table.

Existe-t-il une option qui permet de désactiver ce contrôle sur le nom de table ou une solution de contournement?

Merci.

Pied de page des forums

Propulsé par FluxBB