Bonjour,

Je cherche à insérer une ligne dans une table en effectuant une sélection sur une ligne déjà existante, en valorisant une colonne de ma nouvelle ligne à partir d'une autre colonne de la ligne existante, qui est elle-même mise à jour dans ma nouvelle ligne.

Pour être plus clair voici un exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
INSERT INTO table (colonne1, colonne2, colonne3)
SELECT colonne1, colonne3, 'ccc'
FROM table
WHERE colonne1 = 'xxx'

Si dans ma ligne d'origine j'ai les données suivantes:

'xxx' | 'aaa' | 'bbb'

Je veux que la ligne insérée soit celle-ci :

'xxx' | 'bbb' | 'ccc'


Mais j'obtiens :

'xxx' | 'ccc' | 'ccc'


Comme si la valeur de colonne3 utilisée pour valoriser la colonne2 n'était pas celle de la ligne d'origine mais celle de la ligne que j'insère.

Est-ce normal ?

Comment peut-on contourner ce problème ?



Merci d'avance pour vos réponses.