Dupliquer un enregistrement - SQL/NoSQL - Programmation
Marsh Posté le 15-09-2005 à 13:08:07
ReplyMarsh Posté le 15-09-2005 à 13:09:06
olivthill a écrit : Au lieu d'utiliser UPDATE, utiliser INSERT. |
oui mais ça m'oblige à recopier chaque champs.. et je voulais eviter ça
Marsh Posté le 15-09-2005 à 14:01:36
olivthill a écrit : Au lieu d'utiliser UPDATE, utiliser INSERT. |
j'ai lu sur un autre post que peut etre il faut faire un truc du genre :
INSERT INTO factures SELECT * FROM factures WHERE numero_facture='DEV000024';
... mais à ce moment là comment je redefinis le numero de facture ?
comme ça ?
INSERT INTO factures (numero_factures) VALUES ('000123') SELECT * FROM factures WHERE numero_facture=DEV000024;
.. ça me parait tordu !
Marsh Posté le 15-09-2005 à 14:10:14
INSERT INTO factures
SELECT '000123', champ2, champ3, <...>, champN
FROM factures
WHERE numero_facture='DEV000024';
Marsh Posté le 15-09-2005 à 14:11:52
je capte pas là ! pourquoi la valeur de mon champ se retrouve dans la liste des champs du select ?
Marsh Posté le 15-09-2005 à 14:18:52
En SQL, tu peux mettre une valeur constante dans un SELECT, une valeur qui donc en elle-même n'a pas de lien avec la table ...
Autre exemple:
SELECT 'TOTO' from maTable;
renvoie autant de fois TOTO qu'il y a de lignes dans la table.
Marsh Posté le 15-09-2005 à 14:25:56
ah bon.... je savais pas ça... mais là dans mon cas je suis obligé de lister tous les champs ? SELECT '000123', champs2,champ3..." ?
Marsh Posté le 15-09-2005 à 14:33:38
je viens d'essayer sur une table d'essai... ça a l'air de fonctionner !
Marsh Posté le 15-09-2005 à 15:49:35
bah je connaissais pas trop ces especes de formules magiques ! donc oui j'en doutais ! j'ai donc fait ça :
Code :
|
... et ça a l'air de fonctionner... on bien verra quand mon boss va me dire "YA UN BUG !!!!"
Marsh Posté le 15-09-2005 à 12:52:50
J'aimerai dupliquer un enregistrement avec un nouveau ID... je connais pas trop ces fonctions là en SQL...
je vous explique plus en détails... j'ai trois tables
factures => numero_facture, id, date...
references_facture =>numero_facture, num_ref,titre....
items_facture=>numero_facture,num_ref,item, libelle, quantite,prix
mon script PHP me permet de construire des devis ou des factures.. il utilise pour ça les mêmes tables SQL... la difference entre un devis et une facture c'est son numero... sur un devis, la personne n'a qu'à cliquer sur un bouton "transformer en facture" et son numero change... et ça devient une facture...
Jusque là tout va bien...
le probleme c'est que quand un devis devient une facture.. il disparait de la liste des devis.. c pourquoi je voudrais dupliquer l'enregistrement plutot que de l'updater afin d'avoir une "copie" du devis et une facture...
comment feriez-vous ?
---------------
Freed102