SORU
8 NİSAN 2009, ÇARŞAMBA


Yinelenen / aynı MySQL tablo kayıtları Kopyalama

Bir süredir araştırma yapıyorum ama benim sorunum için kolay bir çözüm bulamıyorum. Bir tabloda yinelenen kayıt etmek istiyorum, ama tabii ki, benzersiz, birincil anahtar güncelleştirilmesi gerekiyor.

Bu sorgu var:

INSERT INTO invoices
    SELECT * FROM invoices AS iv WHERE iv.ID=XXXXX
    ON DUPLICATE KEY UPDATE ID = (SELECT MAX(ID) 1 FROM invoices)

sorun bu sadece satır kopyalamak yerine satır ID değiştirir. Herkes bunu düzeltmek için nasıl biliyor mu ?

//edit: alan adları zaman içinde değişebilir. çünkü tüm alan adlarını yazmaya gerek kalmadan bunu yapmak istiyorum

CEVAP
29 Mayıs 2010, CUMARTESİ


Ben genelde bunu bu şekilde geçici bir tablo kullanıyor. Muhtemelen hesaplama açısından verimli değil, ama iyi iş gibi görünüyor! Burada bütünüyle kayıt 99, 100 kaydı oluşturmak çoğaltarak ediyorum.

CREATE TEMPORARY TABLE tmp SELECT * FROM invoices WHERE id = 99;

UPDATE tmp SET id=100 WHERE id = 99;

INSERT INTO invoices SELECT * FROM tmp WHERE id = 100;

Bu işler senin için iyi umut!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008