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

  • echifitness

    echifitness

    9 Kasım 2008
  • LardTardProductions's channel

    LardTardProd

    10 NİSAN 2009
  • TheRightTire

    TheRightTire

    14 EKİM 2009