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

  • Garrett Müller

    Garrett Mül

    26 HAZİRAN 2009
  • Rockstar Games

    Rockstar Gam

    17 ŞUBAT 2006
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012