Yardım Karekter'i Yaratamazsın !

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

mertcanayhan06

Üye
Üye
Mesaj
198
Çözümler
3
Beğeni
38
Puan
464
Ticaret Puanı
0
Arkadaşlar bu sorunun çözümünü bilen varmı acaba ?
1779744814254.webp
 
Merhaba,
Navicatta player kategorisindeki player tablosuna sağ tıkla design table seçeneğine tıkla. Açılan ekrandaki sağdaki tiklerin hepsini kaldır. Tekrar dene.
 
db sysser:
Genişlet Daralt Kopyala
SYSERR: May 26 01:20:20 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Field 'title_color0' doesn't have a default value
query: INSERT INTO player (id, account_id, name, level, st, ht, dx, iq, job, voice, dir, x, y, z, hp, mp, random_hp, random_sp, stat_point, stamina, part_base, part_main, part_hair,part_acce,  gold, playtime, skill_level, quickslot) VALUES(0, 257, 'asd', 1, 6, 4, 3, 3, 0, 0, 0, 361416, 876822, 0, 760, 260, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
SYSERR: May 26 01:20:20 :: __QUERY_PLAYER_CREATE: QUERY_ERROR: UPDATE player_index SET pid2=0 WHERE id=257
 
title_color0 gibi tablolar eklenmemiş gördüğüm kadarıyla player tablosuna clientmanagerplayer.cpp dosyasından kontrol edebilirsiniz
db sysser:
Genişlet Daralt Kopyala
SYSERR: May 26 01:20:20 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Field 'title_color0' doesn't have a default value
query: INSERT INTO player (id, account_id, name, level, st, ht, dx, iq, job, voice, dir, x, y, z, hp, mp, random_hp, random_sp, stat_point, stamina, part_base, part_main, part_hair,part_acce,  gold, playtime, skill_level, quickslot) VALUES(0, 257, 'asd', 1, 6, 4, 3, 3, 0, 0, 0, 361416, 876822, 0, 760, 260, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
SYSERR: May 26 01:20:20 :: __QUERY_PLAYER_CREATE: QUERY_ERROR: UPDATE player_index SET pid2=0 WHERE id=257
Ek düzenleme:
Eğer ekliyse de sıra yanlış
 
Merhaba,
Navicatta player kategorisindeki player tablosuna sağ tıkla design table seçeneğine tıkla. Açılan ekrandaki sağdaki tiklerin hepsini kaldır. Tekrar dene.
Bunu yapmanızı tavsiye etmem. Sunucuyu saatli bombaya dönüştürür, server elinizde kalır.

NOT NULL kontrolleri veritabanı bütünlüğü için vardır, keyfen kaldırılamaz. Bu tabloya bakınca zaten neredeyse her kritik alanın güvenli bir DEFAULT değeri var: account_id, name, job, x, y, z, map_index, hp, mp, level, gold vs.

Bu checkleri kaldırırsanız sorun çözülmüş olmaz, sadece hata gizlenmiş olur. Anında çökmeyebilir ama ileride takip etmesi çok zor core’lar, buglar, client-server uyumsuzlukları ve bozuk karakter kayıtları oluşturabilir.

Sorun hangi kolonda patlıyorsa o kolonun DEFAULT değeri, insert sorgusu veya tablo-server uyumsuzluğu düzeltilmelidir. Çözüm NOT NULL kaldırmak değil, asıl SQL hatasını bulmaktır.

Syserr kaydına göre gerçek hata bu:

Kod:
Genişlet Daralt Kopyala
Field 'title_color0' doesn't have a default value

Yani sorun NOT NULL kontrolleri değil. Sorun player tablosuna sonradan eklenmiş olan title_color0 kolonunun DEFAULT değeri olmaması.

Karakter oluşturma sorgusunda title_color0 alanı insert edilmiyor. Bu yüzden MySQL, bu kolona hangi değeri yazacağını bilmiyor ve karakter oluşturma işlemini reddediyor.

yapılması gereken title_color0 kolonuna uygun bir DEFAULT değeri vermek ya da karakter oluşturma INSERT sorgusuna bu alanı doğru şekilde eklemektir.

Eğer title_color0 sayısal bir renk/id alanıysa genelde DEFAULT 0 verilir. Ama kolon tipi bilinmeden rastgele SQL yazmak doğru olmaz. Önce player tablosundaki title_color0 kolonunun tipi kontrol edilmelidir.
 
Geri
Üst