Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/04/2005, 11h53   #1
Membre habitué
 
Avatar de Tchinkatchuk
 
Homme Sylvain Gourvil
Freelance en développement Web
Inscription : mars 2005
Messages : 248
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Gourvil
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Freelance en développement Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2005
Messages : 248
Points : 141
Points : 141
Par défaut [Debutant]Probleme d'insert sur sequence !

Bonjour à tous !

Voila j'ai un probleme. ça vous l'aviez deviné, y'en a qui commence a avoir l'habitude avec moi lol.

Lorsque que je fais un insert sur un table francais dont voici le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CREATE TABLE francais
(
  id_antiquaire serial NOT NULL,
  client bool NOT NULL DEFAULT false,
  nom_antiquaire varchar(50) NOT NULL,
  nom_boutique varchar(100) NOT NULL,
  adresse_boutique varchar(130) NOT NULL,
  id_village int4 NOT NULL,
  telephone varchar(10) NOT NULL,
  fax varchar(10),
  mobile varchar(10),
  email varchar(150),
  site varchar(150),
  valide bool NOT NULL DEFAULT false,
  date_saisie date NOT NULL,
  no_departement varchar(3),
  id_prestation int4,
  CONSTRAINT pk_francais1 PRIMARY KEY (id_antiquaire),
  CONSTRAINT fk_francais2 FOREIGN KEY (no_departement) REFERENCES departement (no_departement) ON UPDATE RESTRICT ON DELETE RESTRICT
) 
WITHOUT OIDS;
ALTER TABLE francais OWNER TO postgres;
GRANT ALL ON TABLE francais TO postgres;
GRANT ALL ON TABLE francais TO public;
Voici mon insert :
Code :
1
2
 
INSERT INTO francais (client, nom_antiquaire, ...,  id_prestation) VALUES (FALSE, 'Prenom De L\'anitquaire Nom De L\'antiquaire', ...,  0)
Il me signale que la sequence n'existe pas !!
Citation:
ERROR: relation "public.francais_id_antiquaire_seq" does not exist
Pourtant, un serial cré automatiquement une sequence !!

Quelqu'un pourrait me dire pourquoi ca ne fonctionne pas, j'aimerais éviter de créer la séquence.

Merci beaucoup d'avance[/code]
Tchinkatchuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2005, 14h59   #2
Membre habitué
 
Inscription : mai 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 131
Points : 142
Points : 142
Si tu essaies de remonter "à la main" les infos de ta séquence, il te jette toujours ?

Code :
SELECT * FROM francais_id_antiquaire_seq;
Quentin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2005, 15h24   #3
Membre habitué
 
Avatar de Tchinkatchuk
 
Homme Sylvain Gourvil
Freelance en développement Web
Inscription : mars 2005
Messages : 248
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Gourvil
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Freelance en développement Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2005
Messages : 248
Points : 141
Points : 141
oui, cela fonctionne bien maintenant.
En fait, tout simplment, il ne m'avait pas créé la séquence. C'est d'ailleurs la seule table ou la séquence n'avait pas été créée automatiquement : bizarre.

Le problème est que maintenant je galère a récupérer le nextval

Code :
SELECT * FROM francais_id_antiquaire_seq
semble marcher mais ne me renvoie rien. Je crois que c'est normal.

Code :
SELECT currval('francais_id_antiquaire_seq')
plante et me dit :
  • currval of sequence "francais_id_antiquaire_seq" is not yet defined in this session
J'ai bien trouvé le sujet sur le forum parlant de cela, et il était dit qu'il fallait faire un nextval auparavant, ce que je fais.

Une idée !
Tchinkatchuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2005, 15h37   #4
Membre habitué
 
Inscription : mai 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 131
Points : 142
Points : 142
De mon côté, via pgAdmin, la requête que j'ai donnée me renvoie les infos de ma séquence (nom, valeur min, valeur max, valeur courante, incrément, etc), bizarre...

Sinon, l'autre message d'erreur est normal. Dans ta session courante, tant que tu n'as pas fait appel à ta séquence en incrémentation (avec nextval, donc), tu ne peux pas récupérer sa valeur courante avec currval. Par contre, si tu fais une insertion, et que tu la rappelles, ça doit fonctionner.
Quentin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h23.


 
 
 
 
Partenaires

Hébergement Web