Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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.
Pages : 1