..
Ve doğru bir sorgu yönetim istikrarlı ve etkin uygulanması için bir ön koşul olduğu iyi bilinir.
Bu yazıda bir az bilinen ama çok güçlü bir sözdizimi sunacak, ben YİNELENEN KEY UPDATE yan tümcesi bahsediyorum.
Bu madde bir INSERT ifadesi sırasında kullanılan ve amacına doğrulamak için olduğunu, yerleştirilmeden önce, orada bir birincil anahtar (birincil anahtar) veya benzersiz bir anahtar (UNIQUE KEY) bir çoğaltma ve bu motor olursa un'UPDATE MySQL yerine ekler.
Bu maddenin avantajı açıktır: performans ve kod temizleme açısından avantajları ile iki yerine tek bir sorgu yazmak.
Bir örnek verelim. Sitemize gelen ziyaretçilerin giriş yapan basit bir script yapmak istediğinizi varsayalım. : Bizim DB tablo yapısı altında
Sözdizimi INSERT sayesinde ... YİNELENEN KEY UPDATE ... tek bir sorgu ile aynı sonucu elde edebilirsiniz:
Ip_visitatori VALUES ('123 .123.123.123 ', 1, NOW ()) INSERT INTO
KEY DPLICATE AÇIK
UPDATE numero_visite numero_visite = + 1, ultima_visita = ŞİMDİ ();
Bu nedenle, IP dahil yapılır ise, aksi takdirde etkilenen kayıt basit bir güncelleme çalıştırın.
Bu sözdizimini kullanarak% 30 eşit performans açısından bir fayda elde etmesini sağlar.
Söz konusu maddenin 'biraz hayal gücü ve yaratıcılık ile çeşitli durumlarda çok kullanışlı olabilir.
Örneğin bir durum ile birlikte kullanabilirsiniz.
İşte bir örnek: aşağıdaki şekilde yapılandırılmış bir varsayımsal çevrimiçi açık artırma sitesi bir tablo olduğunu varsayalım:
VALUES (1, 120) INSERT INTO Fiyatları KEY DPLICATE AÇIK UPDATE migliore_offerta = (VALUES (migliore_offerta) <120, 120, DEĞERLER (migliore_offerta)) IFBiz bir çözülmüştür basit bir sorgu ile hamlede ... Aksi takdirde bir kaynak bunun sonucunda atık (ve hataların büyük bir riski) birkaç sorguları kullanmak zorunda kalacaktı.
| |
MS Access (Gelişmiş)
Hızlı ve kolay bir veritabanı oluşturmak ve yönetmek öğrenin. 29 € dan başlayan fiyatlarla. |
| |
MySQL (Ders)
Açık kaynak veritabanı yönetimi. En düşük € 39. |
| |
SQL ve Veritabanı (Ders)
Ilişkisel veritabanı oluşturma ve yönetme. En düşük € 39. |