SORU
18 Mart 2010, PERŞEMBE


INSERT INTO ... YİNELENEN ... ANAHTARI GÜNCELLEŞTİRME SEÇİN

Çok sayıda sütun en benzersiz bir anahtarı zaten varsa, yeni değerler için güncelleştirilmesi gerekir ınsert sorgusu yapıyorum. Şöyle bir şey:

INSERT INTO lee(exp_id, created_by, 
                location, animal, 
                starttime, endtime, entct, 
                inact, inadur, inadist, 
                smlct, smldur, smldist, 
                larct, lardur, lardist, 
                emptyct, emptydur)
SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, 
       t.inact, t.inadur, t.inadist, 
       t.smlct, t.smldur, t.smldist, 
       t.larct, t.lardur, t.lardist, 
       t.emptyct, t.emptydur 
FROM tmp t WHERE uid=x
ON DUPLICATE KEY UPDATE ...; 
//update all fields to values from SELECT, 
//       except for exp_id, created_by, location, animal, 
//       starttime, endtime

UPDATE yan sözdizimi ne olması gerektiğinden emin değilim. Nasıl SELECT tümce geçerli satırın bakın?

CEVAP
18 Mart 2010, PERŞEMBE


MySQL fıkra İÇİNE başvurular sütun EKLE adlı eşittir önce kısmını üstlenecek, ve ikinci bölümü SEÇİN sütunlar referanslar.

INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, 
                inact, inadur, inadist, 
                smlct, smldur, smldist, 
                larct, lardur, lardist, 
                emptyct, emptydur)
SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, 
       t.inact, t.inadur, t.inadist, 
       t.smlct, t.smldur, t.smldist, 
       t.larct, t.lardur, t.lardist, 
       t.emptyct, t.emptydur 
FROM tmp t WHERE uid=x
ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, ...

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • KendrickLamarVEVO

    KendrickLama

    9 ŞUBAT 2011
  • Skittles Page

    Skittles Pag

    28 Mart 2011
  • stokelycalm

    stokelycalm

    28 Aralık 2010