2009-10-27 4 views
1

J'ai une table appelée scheduler_sched qui a plusieurs colonnes, y compris une colonne appelée schedule_id.PHP, MySQL: Dupliquer une série de lignes, mais changer 1 colonne?

J'ai besoin d'une fonction où je peux passer 2 ids (copy_from_id, copy_to_id) en tant que paramètres. Et ce que je dois faire est de prendre toutes les lignes où schedule_id = copy_from_id ET dupliquer, mais changer le copy_from_id au copy_to_id

Donc, fondamentalement, je veux la equivalient de ceci:

UPDATE scheduler_sched SET schedule_id = 32 WHERE schedule_id = 28 

Seulement je ne voulez mettre à jour les lignes, je veux créer des doublons avec les nouveaux ID

Est-ce logique?

Comment est-ce que je peux faire ceci?

MERCI!

(par la schedule_id façon est pas un champ unique/index sur cette table)

Répondre

2
Insert into scheduler_sched (column1, column2, column3,schedule_id) 
Select column1, column2, column3, 32 from scheduler_sched WHERE schedule_id = 28 
0

Il suffit d'insérer une nouvelle ligne au lieu de la mise à jour. CHOISISSEZ d'abord si l'ID de calendrier 28 existe, et si c'est le cas, insérez-en un nouveau avec l'ID.

0

Puisque vous n'avez pas spécifié une version de MySQL, je vais supposons que c'est le dernier (5.4).

En supposant que je vous comprends bien, vous devriez être en mesure de mettre en œuvre cette aide de déclencheurs: http://dev.mysql.com/doc/refman/5.4/en/create-trigger.html

L'un des avantages de l'utilisation des déclencheurs, est-il est tout géré par la base de données elle-même.

+0

En fait j'utilise 4.1.22, désolé de ne pas spécifier –