THE ORB
Studio başlatılıyor

Duplicate entry '<değer>' for key '<indeks>'

Bir script zaten var olan bir şeyi kaydetmeye çalıştı — genelde bir oyuncunun iki kez eklenmesi.

groupsO oyuncu için kaydetme başarısızcodeGeliştirici gerektirir

Önce şunu yap

Her katılımda oluyorsa, script önce kontrol etmeden ekliyordur. Yazarına bildir.

bug_reportBunun yerine tüm konsolunu yapıştır

Ne anlama gelir

Bir INSERT, bir UNIQUE ya da PRIMARY anahtarın zaten tuttuğu bir değeri yazmaya çalıştı. MySQL ifadenin tamamını reddetti. Mesaj hem değeri hem çakıştığı indeksi adlandırır, ki bu ikisi birlikte satırı tanımlar.

Neden olur

Ne sıklıkla doğru cevap olduğuna göre sıralı.

  1. 1

    Zaten var olan bir oyuncuyu eklemek

    Koşulsuz ekleyen bir playerConnecting ya da ilk katılım işleyicisi. İkinci katılım, aynı tanımlayıcı, çakışma.

  2. 2

    Bir işleyici iki kez kaydedilmiş

    Aynı olay iki dosyada bağlanmış, ya da bir kaynak işleyicisi temizlenmeden yeniden başlatılmış, yani her işlem iki kez çalışıyor.

  3. 3

    Aslında başarılı olan bir zaman aşımından sonra yeniden deneme

    İlk ekleme çalıştı ve yanıt kayboldu; yeniden deneme çakışır.

  4. 4

    Tek veritabanında iki sunucu

    Kimlik bilgilerini paylaşan bir geliştirme kutusu ile bir canlı kutu.

  5. 5

    İstemci tarafında üretilen bir kimlik

    İstemcinin birincil anahtar olarak sağladığı her şey er geç tekrar eder.

Hangisinin seninki olduğu nasıl anlaşılır

Zaten orada olan satırı bul:

SELECT * FROM users WHERE identifier = 'mesajdaki-deger';

Meşru, mevcut bir oyuncu gibi görünüyorsa, insert hiç çalışmamalıydı. Saniyeler önce oluşturulmuş bir satırın kopyasıysa, iki kez ekliyorsun demektir.

Nereye bakmalı

Kaynaktaki INSERT, ve önce varlık kontrolü yapan bir şey olup olmadığı.

Nasıl düzeltilir

Hata vermesine izin vermek yerine, bir çakışmada ne olacağını söyle:

-- mevcut satırı koru, hiçbir şey yapma
INSERT IGNORE INTO users (identifier, name) VALUES (?, ?)

-- ya da güncelle
INSERT INTO users (identifier, name) VALUES (?, ?)
ON DUPLICATE KEY UPDATE name = VALUES(name)

Hâlâ kendi kodunda mı takıldın?

Bu sayfa, bu hatanın genelde ne anlama geldiğini anlatır. Konsolunu Server Fixer'a yapıştır; içindeki her şeyi sıraya dizer ve önce ne yapman gerektiğini söyler. Kendin uğraşmak istemiyorsan ORBIE script'i onarır ve kaynağı sunucuna atmaya hazır geri verir.

bug_reportServer Fixer'ı aç

Bu tür bir hata için Script Optimizer buna yol açan sorgu kalıplarını yakalar.

Bununla birlikte gelen hatalar