SORU
1 Mayıs 2009, Cuma


MySQL - ınsert hata: yinelenen giriş

PHP çalışıyorum.

Benzersiz bir alan olan DB, yeni kayıt eklemek doğru yolu nedir lütfen. Toplu kayıtların çok ekleme ve ben yenilerini eklenmesini istiyorum ve herhangi bir hata yinelenen giriş istemiyorum.

SEÇİN kayıt verir sadece bir SEÇME yapmak ve eğer zaten orada EKLEMEK için EKLE daha önce olup olmadığını görmek için tek yok? Umarım.

Bir şekilde MySQL herhangi bir hata olmadan bu ekler görmezden anlatmak istiyorum.

Teşekkür ederim

CEVAP
1 Mayıs 2009, Cuma


Eğer bir şey olmazsa bir önlem almak istiyorsanız INSERT... IGNORE sözdizimi kullanın yinelenen kayıt edebilirsiniz.

Eğer aynı anahtar ile yeni bir tane eski bir kayıt üzerine yazmak isterseniz REPLACE INTO sözdizimi kullanabilirsiniz.

Veya, Eğer bir yinelenen karşılaşma yerine kayıt için bir güncelleştirme gerçekleştirmek istiyorsanız INSERT... ON DUPLICATE KEY UPDATE sözdizimi kullanabilirsiniz.

Edit: bazı örnekler eklemek istedim.

Örnekler

Bir tablo iki sütun id value tbl adlı söylüyorlar. Tek bir giriş var,=1 ve değeri=1 numarası. Eğer aşağıdaki ifadeleri çalıştırın:

REPLACE INTO tbl VALUES(1,50);

Hala bir kayıt, id=1 value=50. Bütün bu rekoru ancak SİLİNDİ, ve sonra yeniden eklenen unutmayın. Sonra:

INSERT IGNORE INTO tbl VALUES (1,10);

İşlem başarıyla yürütür, ama hiçbir şey eklenir. Hala=1 ve değeri=50 kimliği var. Nihayet:

INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;

Şimdi ıd ile tek bir kayıt=1 ve değeri=200.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006
  • Schmittastic Jr.

    Schmittastic

    19 Mart 2013