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

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • tinycammonitor

    tinycammonit

    14 Aralık 2010