Vous n'êtes pas identifié(e).
Bonjour,
Après moultes recherches non concluantes sur le net, je me demandais si il était possible d’insérer 'automatiquement' des enregistrements incrémentés dans une table suivant une séquence spécifique. Je précise que je ne veux insérer que le champ incrémenté sur un pas défini.
Pour être plus précis, je cherche à remplir une table année ne possédant que le champ annee de 2005 à 2020 par exemple.
J'ai bien le
CREATE SEQUENCE annees INCREMENT BY 1
MINVALUE 2000
NO MAXVALUE
START WITH 2005
CACHE 100
OWNED BY année.annee
Suivi d'un
INSERT INTO année (annee) VALUES (nextval('annees'))
Mais cette dernière instruction ne vaut que pour un enregistrement à la fois.
J'aimerai arriver à quelque chose du genre
INSERT INTO annee (annee) VALUES (nextval('annees'), min_value('2005'), max_value('2020'))
Sauf que min_value et max_value ne sont pas des arguments de la fonction INSERT VALUES
Une idée?
Dernière modification par robinson (07/05/2018 20:47:25)
Hors ligne
Je ne suis pas sûr d'avoir bien compris, mais j'aurais tendance à dire ça :
INSERT INTO annee (annee) SELECT generate_series(2005, 2020, 1);
Le dernier argument (1) est à remplacer par l'incrément réellement souhaité (sachant que quand il vaut 1, il n'est pas nécessaire de le préciser mais bon, là, c'est pour l'exemple ).
Guillaume.
Hors ligne
Bonjour,
Cette fonction est magique! Moi qui pensait qu'il fallait passer par un montage complexe avec une séquence et une sorte de boucle... On découvre toujours de nouvelles fonctions!
Merci beaucoup.
Hors ligne