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 07/02/2017 21:37:42

databaser
Membre

insertion données dans une table

Bonjour,

J'insère manuellement des données dans une table. Or, si je veux faire copier-coller d'une donnée dans une nouvelle ligne, un message s'affiche : "Cette table contient des colonnes de type serial. Voulez-vous utiliser les valeurs du presse-papier pour ces colonnes ?"
Oui puisque je fais coller... La seule colonne serial que j'ai est la 1ère colonne, un ID avec type serial
Comment enlever ce message, svp ?
Merci :-)

Hors ligne

#2 08/02/2017 01:11:13

rjuju
Administrateur

Re : insertion données dans une table

Étant donné que vous ne précisez pas le client que vous utilisez, la seule réponse possible est "lisez la documentation du client que vous utilisez".

Hors ligne

#3 12/02/2017 13:44:30

databaser
Membre

Re : insertion données dans une table

Bonjour, Le client ? Excusez-moi je ne savais pas qu'il fallait le préciser. Qu'est-ce au juste ? J'utilise PostgreSQL avec PG Admin III.  Je crée la table dans PG Admin III et remplit les lignes manuellement.
Cela vous va ?

Hors ligne

#4 12/02/2017 21:50:36

rjuju
Administrateur

Re : insertion données dans une table

Oui, c'est l'information qu'il manquait.  Et malheureusement, non ce n'est pas désactivable (et ça me semble d'ailleurs mieux de ne pas pouvoir le désactiver).

Dernière modification par rjuju (13/02/2017 15:27:18)

Hors ligne

#5 13/02/2017 14:44:39

databaser
Membre

Re : insertion données dans une table

Votre réponse me laisse vraiment perplexe...

Hors ligne

#6 17/02/2017 00:33:11

jmarsac
Membre

Re : insertion données dans une table

Votre perplexité me laisse dubitatif ...
Si vous consultez la doc,  vous verrez que "serial" est en fait un pseudo-type qui permet d'avoir une incrémentation automatique d'une valeur entière (un numéro de série). Le fait de définir manuellement (par copier/coller ou autre moyen) la valeur d'un telle colonne perturberait ce mécanisme et conduirait tôt ou tard à un doublon.
Et le type "serial" est très souvent utilisé pour définir une clé primaire ("bigserial" également).
C'est pour cela que PG Admin affiche cette alerte et que Julien trouve à juste titre qu'il est mieux de ne pas pouvoir la désactiver.

Dernière modification par jmarsac (17/02/2017 00:36:48)

Hors ligne

#7 19/02/2017 16:47:23

databaser
Membre

Re : insertion données dans une table

merci votre réponse est intéressante, le fonctionnement des SGBD est passionnant :-)

Par contre, je ne cherche pas à faire copier-coller dans la colonne de type serial. Je copie une valeur par ex d'une colonne de type varchar (ex : le nom "Julie") et veux la coller dans la ligne en dessous qui est la même colonne. Ceci, parce que j'ai beaucoup de valeurs identiques à entrer. Remarque : la ligne sur laquelle je veux coller existe, a déjà son ID d'incrémenté voire d'autres colonnes auxquelles j'ai ajouté des valeurs.
Dès lors, Le message s'affiche et si je réponds Oui, la valeur est collée dans la colonne qui contient  le type serial.
Pour information, la colonne de type serial est en effet une clé primaire d'incrémentation auto.
J'ai compris suite à votre réponse que cela doit être expliqué par la logique du SGBD...

Dernière modification par databaser (19/02/2017 16:52:06)

Hors ligne

#8 20/02/2017 00:37:02

jmarsac
Membre

Re : insertion données dans une table

Le copier/coller est utilisable en double cliquant au préalable  sur la cellule devant recevoir la donnée. mais il n'est pas possible d'affecter plusieurs cellules en bloc par copier/coller et cela perd donc de son intérêt.
Il faut passer par une requête UPDATE pour faire des affectations en bloc (ce qui est un peu moins simple mais beaucoup plus puissant).

Hors ligne

Pied de page des forums