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

  • DigitalRev TV

    DigitalRev T

    30 AĞUSTOS 2007
  • Justin Schenck

    Justin Schen

    24 Kasım 2006
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007