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

#1 04/01/2012 23:14:48

kamusall
Membre

Problème d'insertion de données dans des tables

J'ai installé postgres sur Windows.

J'ai voulu vous envoyer le fichier SQL mais je ne sais pas comment le faire à partir du forum.


================= ERREUR GÉNÉRÉE ========================================
ERREUR:  erreur de syntaxe sur ou près de « 288 »
LINE 105: 288  Kervegan's  2008-06-02 13:50:58.01438
          ^

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

ERREUR: erreur de syntaxe sur ou près de « 288 »
État SQL :42601
Caractère : 3919

================ PORTION DE LA REQUÊTE ==============================
DROP TABLE ecrit ;
DROP TABLE interprete ;
DROP TABLE disque ;
DROP TABLE membre ;
DROP TABLE languechanson ;
DROP TABLE chanson ;
DROP TABLE autorisations ;
DROP TABLE langueartiste ;
DROP TABLE langue ;
DROP TABLE droits ;
DROP TABLE genre ;
DROP TABLE etat ;
DROP TABLE artiste ;

CREATE TABLE artiste (
                art_num integer NOT NULL PRIMARY KEY,
                art_prenom character varying,
                art_nom character varying,
                art_groupe character varying,
                art_modif timestamp without time zone DEFAULT CURRENT_TIMESTAMP);
CREATE TABLE etat (
                eta_num integer NOT NULL PRIMARY KEY,
                eta_nom character varying);
CREATE TABLE genre (
                gen_num integer NOT NULL PRIMARY KEY,
                gen_nom character varying,
                gen_modif timestamp without time zone DEFAULT CURRENT_TIMESTAMP);
CREATE TABLE droits (
                dro_num integer NOT NULL PRIMARY KEY,
                dro_nom character varying,
                dro_niveau integer);
CREATE TABLE langue (
                lan_num character varying NOT NULL PRIMARY KEY,
                lan_nom character varying);
CREATE TABLE langueartiste (
                laa_langue character varying NOT NULL,
                laa_artiste integer NOT NULL,
                laa_maternelle boolean DEFAULT true,
                PRIMARY KEY (laa_langue, laa_artiste));
CREATE TABLE autorisations (
                aut_login character varying NOT NULL PRIMARY KEY,
                aut_motdepasse character varying,
                aut_nom character varying,
                aut_prenom character varying,
                aut_droits integer);
CREATE TABLE chanson (
                cha_num integer NOT NULL PRIMARY KEY,
                cha_titre character varying,
                cha_genre integer,
                cha_texte character varying,
                cha_libre boolean,
                cha_modif timestamp without time zone DEFAULT CURRENT_TIMESTAMP);
CREATE TABLE languechanson (
                lac_langue character varying NOT NULL,
                lac_chanson integer NOT NULL,
                lac_principale boolean DEFAULT true NOT NULL,
                PRIMARY KEY (lac_langue, lac_chanson, lac_principale));
CREATE TABLE membre (
                mem_membre integer NOT NULL,
                mem_groupe integer NOT NULL,
                mem_debut character varying NOT NULL,
                mem_fin character varying NOT NULL,
                PRIMARY KEY (mem_membre, mem_groupe, mem_debut, mem_fin));
CREATE TABLE disque (
                dis_num integer NOT NULL PRIMARY KEY,
                dis_titre character varying,
                dis_artiste integer,
                dis_annee character varying,
                dis_cddb character varying,
                dis_anneeachat character varying,
                dis_prixachat numeric(8,2),
                dis_etat integer,
                dis_perdu boolean DEFAULT false,
                dis_modif timestamp without time zone DEFAULT CURRENT_TIMESTAMP);
CREATE TABLE interprete (
                int_artiste integer NOT NULL,
        int_chanson integer NOT NULL,
                int_disque integer NOT NULL,
        int_numero integer NOT NULL,
                PRIMARY KEY (int_artiste, int_chanson, int_disque, int_numero)
);
CREATE TABLE ecrit (
                ecr_artiste integer NOT NULL,
                ecr_chanson integer NOT NULL,
                PRIMARY KEY (ecr_artiste, ecr_chanson));


--
-- PostgreSQL database dump
--

SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

SET search_path = public, pg_catalog;

--
-- Data for Name: artiste; Type: TABLE DATA; Schema: public; Owner: gonzalez
--

COPY artiste (art_num, art_prenom, art_nom, art_groupe, art_modif) FROM stdin;
288        Kervegan's        2008-06-02 13:50:58.01438
142        U2        2008-03-12 18:33:17
77    Alain    Bashung        2008-06-02 14:11:37.495902
289        Choeur des moines de l'abbaye Saint-Pierre de Solesmes        2008-06-02 14:45:10.37554
....
....


=====================================================================

Merci d'avance

Hors ligne

#2 04/01/2012 23:19:43

gleu
Administrateur

Re : Problème d'insertion de données dans des tables

pgAdmin ne peut pas exécuter de requête COPY ... FROM stdin via son éditeur de requêtes. Vous devez passer par psql pour exécuter ce script.


Guillaume.

Hors ligne

#3 09/01/2012 14:33:00

kamusall
Membre

Re : Problème d'insertion de données dans des tables

Merci d'avoir répondu.

Par ailleurs je n'arrive pas à exécuter mon fichier disques2009V2.sql
Pourtant j'ai changé les droits sur ma partition D et sur le fichier.
commande: discotheque-#\i d:\disques2009V2.sql
J'ai comme message d'erreur:
d: : Permission denied

Merci d'avance.

Dernière modification par kamusall (09/01/2012 14:34:17)

Hors ligne

#4 09/01/2012 14:46:29

gleu
Administrateur

Re : Problème d'insertion de données dans des tables

Vous ne devez pas utiliser l'antislash mais le slash. (pas \ mais /)


Guillaume.

Hors ligne

#5 09/01/2012 14:51:00

kamusall
Membre

Re : Problème d'insertion de données dans des tables

Super ! Ca marche.
Pourquoi on utilise le slash à la place de l'antislash alors qu'on travaille sur windows ?

Hors ligne

#6 09/01/2012 15:40:51

gleu
Administrateur

Re : Problème d'insertion de données dans des tables

L'antislash est généralement un symbole d'échappement. L'utiliser peut poser un certain nombre de problèmes. Par exemple, la commande COPY vous force aussi à utiliser /. Le nom du fichier est compris entre guillemets dans ce cas et est donc sujet à interprétation d'un symbole d'échappement.


Guillaume.

Hors ligne

#7 09/01/2012 15:43:31

kamusall
Membre

Re : Problème d'insertion de données dans des tables

Bien compris.

Merci encore.

Hors ligne

Pied de page des forums