Mysql : copier une valeur vers un autre champ
Résolu
new morning
Messages postés
133
Statut
Membre
-
Etranger -
Etranger -
Bonjour,
J'ai 2 tables de structure identique (source et copie). Je veux copier toutes les valeurs d'un enregistrement de source vers la table copie.
Hors, si je fais
Je me retrouve avec l'erreur courante
Je pense que c'est lié au fait que l'index ne peut pas être copié. Pour contourner, je peux bien sûr écrire
Mais c'est un peu longuet...
Peut on sélectionner "tout sauf le champs "id" " ?
J'ai 2 tables de structure identique (source et copie). Je veux copier toutes les valeurs d'un enregistrement de source vers la table copie.
Hors, si je fais
INSERT INTO copie SELECT * FROM source WHERE id=1
Je me retrouve avec l'erreur courante
#1136 - Column count doesn't match value count at row 1
Je pense que c'est lié au fait que l'index ne peut pas être copié. Pour contourner, je peux bien sûr écrire
INSERT INTO copie SELECT (champs_1, champs_2, champs_3, ... champs_n) FROM source WHERE id=1
Mais c'est un peu longuet...
Peut on sélectionner "tout sauf le champs "id" " ?
A voir également:
- Could not connect to mysql! please check your database settings!
- Borland database engine - Télécharger - Édition & Programmation
- Qwerty to azerty - Guide
- 0271 check date and time settings - Forum BIOS
- Check disk - Guide
- Please press del or f2 to enter uefi bios setting - Forum BIOS
2 réponses
Apparemment ce n'est pas possible.
Quelqu'un donne sa façon de faire pour remédier à son problème (qui est le même que le tien) mais ca a l'air compliqué :
http://www.sqlfr.com/forum/sujet-SELECT-SAUF-CHAMP_1261073.aspx
Bon courage !
Quelqu'un donne sa façon de faire pour remédier à son problème (qui est le même que le tien) mais ca a l'air compliqué :
http://www.sqlfr.com/forum/sujet-SELECT-SAUF-CHAMP_1261073.aspx
Bon courage !
A première vue je pense que la solution que donne ton lien est bonne. Cependant dans mon cas c'est plus trivial que ça : j'avais interverti l'ordre de mes requête, ce qui explique qu'une de mes tables contenait une colonne de plus que l'autre !
La seule leçon à retenir de cette bêtise est qu'il n'y a aucune difficulté à copier toute la ligne d'une table vers l'autre : au pire (c'est ce qui se passe chez moi) la clef "id" est ignorée (c'est à dire qu'elle n'est pas "copiée" mais seulement incrémentée). Donc aucun pb en fait pour faire ce que je croyais faire:
La seule leçon à retenir de cette bêtise est qu'il n'y a aucune difficulté à copier toute la ligne d'une table vers l'autre : au pire (c'est ce qui se passe chez moi) la clef "id" est ignorée (c'est à dire qu'elle n'est pas "copiée" mais seulement incrémentée). Donc aucun pb en fait pour faire ce que je croyais faire:
CREATE TABLE copie LIKE source INSERT INTO copie SELECT * FROM source WHERE id=1
Merci, c'est résolu.
Est-ce que tu as trouvé une solution ou est-ce que tu as pris la solution du lien que je t'ai donné ou est-ce que tu as donné les noms de variables ??
Si tu as trouvé une solution, ce serait sympa de la partager :)