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ş:
MySQL geçerli saat 2 saat Ekle?...
MySQL Yabancı Anahtar Kısıtlaması Ekle...
Ekle bir değeri MySQL tek tırnak içere...
MySQL Hata 1215: yabancı anahtar kısıt...
MySQL: kayıt Ekle değilse tablo var...