PHP, MySQL: satır serisi çoğaltın, ama 1 sütun değiştirmek?

3 Cevap php

Ben schedule_id adında bir sütun dahil olmak üzere birçok sütun vardır bir tablo denir scheduler_sched var.

Ben parametre olarak 2 kimlikleri (copy_from_id, copy_to_id) geçebilir bir işlev gerekir. Ve ne yapmam gerekiyor schedule_id = copy_from_id her satır almak ve çoğaltmak ancak copy_to_id için copy_from_id değişimdir

Böylece temelde bu equivalient etmek istiyorum:

UPDATE scheduler_sched SET schedule_id = 32 WHERE schedule_id = 28

Sadece ben herhangi bir satır GÜNCELLEMEYİ istemiyorum, ben kimlikleri ile yeni çiftleri oluşturmak istiyorum

Bu mantıklı mı?

Bunu nasıl yapabilirim?

TEŞEKKÜRLER!

(Yol schedule_id tarafından bu tabloda benzersiz bir / dizin alanı değildir)

3 Cevap

Ben yinelenen KEY GÜNCELLEME sözdizimi size yardımcı olabileceğini düşünüyorum:

http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

örneğin:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

Sadece güncellemek yerine yeni bir satır eklemek. Bu schedule_id 28 varsa ilk SEÇ, ve eğer, o kimliği olmak ile yeni bir tane takın.

MySQL bir sürümünü belirtilmeyen bu yana, ben o (5.4) en son olduğunu kabul edeceğim.

http://dev.mysql.com/doc/refman/5.4/en/create-trigger.html: seni doğru anlama ediyorum varsayarak, bu tetikleyicileri kullanarak uygulamak gerekir

Tetikleyicileri kullanarak yararlarından biri, tüm veritabanının kendisi tarafından işlenir edilir.