Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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".
Julien.
https://rjuju.github.io/
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)
Julien.
https://rjuju.github.io/
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
Pages : 1