SORU
27 Mayıs 2009, ÇARŞAMBA


MySQL Şartlı Ekle

Zor bir zaman, şartlı olarak EKLE oluşturan yaşıyorum

Örnek KİMLİĞİ benzersiz olduğu bir sütun (örneğin, kullanıcı, madde) x_table var. Eğer kullanıcı zaten belirli bir öğe varsa, sadece yeni bir satır eklemek istiyorum.

Örneğin çalıştığınız için Ekle örneği=919191=123=456 kullanıcı Öğe

Insert into x_table (instance, user, item) values (919191, 123, 456) 
    ONLY IF there are no rows where user=123 and item=456

Doğru yönde herhangi bir yardım veya rehberlik çok mutluluk duyacağız.

CEVAP
27 Mayıs 2009, ÇARŞAMBA


Eğer VERİTABANI bir ekleme çalıştırdığınızda seçtiğiniz üzerinde sınırlamalar empoze etmesi söz konusu değilse, deneyin:

INSERT INTO x_table(instance, user, item) 
    SELECT 919191, 123, 456
        FROM dual
        WHERE NOT EXISTS (SELECT * FROM x_table
                             WHERE user = 123 
                               AND item = 456)

Bu, dual Bir satır ile bir tablo (aslında Oracle, şimdi de başka bir yerde bulundu). Mantık SELECT deyimi gereken değerleri ile verileri tek bir satır oluşturur, ama bu değerler zaten bulunamadı.

Alternatif olarak, BİRLEŞTİRME deyim bak.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Justin Davis

    Justin Davis

    14 Ocak 2008
  • TechRax

    TechRax

    21 EYLÜL 2009
  • Wii Minute Radio

    Wii Minute R

    31 Mayıs 2008