PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 19/12/2018 17:15:58

bvolpi
Membre

Création d'une table à partir d'une table modele

Bonjour,

j'ai une table   modeles.rdv avec
    id     integer Incrément automatique [nextval('rdv_id_seq')] , ........

que je duplique : create table agenda.rdv_xxxx  as table  modeles.rdv .

mais je perds l'auto-incrementation

j'aimerais  que  agenda.rdv_xxxx garde l'auto incrementation et devienne
   id     integer Incrément automatique [nextval('rdv_xxxx_id_seq')]


j'ai essayé :

create table  agenda.rdv_xxxx as table  modeles.rdv;
create sequence agenda.rdv_xxxx_id_seq start with 1 increment by 1 NO MINVALUE NO MAXVALUE CACHE 1;
ALTER SEQUENCE agenda.rdv_xxxx_id_seq OWNED BY agenda.rdv_xxxx.id;


la sequence  est bien  créer mais ne s'applique pas au champ id ???

A quel endroit je fais l'erreur ?

Hors ligne

#2 19/12/2018 20:25:37

gleu
Administrateur

Re : Création d'une table à partir d'une table modele

Il manque l'attribution de la valeur par défaut sur la colonne id. Ceci étant dit, il serait certainement plus simple de faire un

CREATE TABLE XXX (LIKE YYY INCLUDING ALL);

. Voir https://docs.postgresql.fr/11/sql-createtable.html pour les détails.

Hors ligne

#3 20/12/2018 12:21:46

bvolpi
Membre

Re : Création d'une table à partir d'une table modele

Merci pour la réponse, mais je crois que je me suis mal expliquer :

CREATE TABLE table2 (LIKE table1 INCLUDING ALL);  copie en effet tout mais mon problème c'est de détaché les sequences

table1_seq.id  ->  table2_seq.id

j'ai trouver la commande qui me manquait  :
ALTER TABLE xxxxx ALTER COLUMN  id   set default  value

Hors ligne

Pied de page des forums