PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Copier un élément d'une table

Technique - général | Copier un élément d'une table

Par ishtanzar le 27/09/2005 - 20:49

Bonjour tout le monde,

Je suis nouveau par ici et j'ai un petit problème. Je suis en train de développer un système de fichier sur base SQL et je cherche à dupliquer un élément éxistant.
Voilà la définition de la table sur laquelle je travaille:

CREATE TABLE temp_wfs
(
wfs_element_id int4 NOT NULL,
element_id int4,
element_type varchar(32) NOT NULL,
left_border int4 NOT NULL,
right_border int4 NOT NULL,
"level" int4 NOT NULL,
CONSTRAINT temp_wfs_pk PRIMARY KEY (wfs_element_id)
)
WITHOUT OIDS;
ALTER TABLE temp_wfs OWNER TO postgres;

Le wfs_element_id est généré avec la séquence suivante:

CREATE SEQUENCE temp_wfs_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 6
CACHE 1;
ALTER TABLE temp_wfs_id_seq OWNER TO postgres;

Je souhaiter créer un doublon d'un élément mais avec un wfs_element_id différent. J'ai donc écrit cette requête:

insert into temp_wfs
select (
select CAST(nextval('temp_wfs_id_seq') as INTEGER),
element_id,
element_type,
left_border,
right_border,
level)
from wfs

mais il ne veut pas l'exécuter et me sort l'erreur suivante:

ERROR: subquery must return only one column

AU SECOURS !

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

insert into temp_wfs select

sparky/ = 29 Septembre, 2005 - 10:03

insert into temp_wfs
select CAST(nextval('temp_wfs_id_seq') as INTEGER),
element_id,
element_type,
left_border,
right_border,
level
from wfs

Cela ne marche pas mieux ainsi ?


Heu, merci sparky ça marche

ishtanzar/ = 5 Octobre, 2005 - 09:47

Heu, merci sparky ça marche super mais par contre comment je pourrais faire pour en dupliquer plusieurs d'un coup, exemple, dupliquer tous les éléments répondant à la clause where suivante:
WHERE left_border >= 3
AND right_border <= 5


Merci j'ai trouvé, ça march

ishtanzar/ = 6 Octobre, 2005 - 15:52

Merci j'ai trouvé, ça marche niquel !


Merci :-) Ishtanzar

ishtanzar/ = 3 Octobre, 2005 - 16:44

Merci :-)
Ishtanzar


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.