ALTER TABLE ADD UNIQUE - php težave
 
werky 21. maj 2012 17:58:58 Pridružen od:
16. apr 2012
787 objav
796 168 26
#1

Evo,spet nova težava...



Skratka, pri uvozu ponudb preko xml-ja na stran moram nekako določiti neko sprejemljivko ki ima unikatno vrednost, zato da ko ponovno uvozim xml, ki je medtem že spremenjen (dodane nove ponudbe, ni več pretečenih ponudb,nekatere so enake kot prej) ne uvozi istih ponudb še enkrat ker so potem podvojene...Probal sem z id ampak je ta v bazi že določen in ga ne morem spreminjati,nato sem dodal novo polje id_ponudbe, nastavil na VARCAHAR, in poizkusil ALTER TABLE ADD UNIQUE a sql vrže ven napako:



ALTER TABLE class_ads ADD UNIQUE (

id_ponudbe

)



MySQL je vrnil: Dokumentacija

#1069 - Too many keys specified; max 64 keys allowed



Ima kdo kakšno idejo/predlog kako rešiti ali to težavo,ali pa drugačno rešitev za to da pri uvozu ne bom vnašal istih ponudb, ali pa da jih vsaj prepišem.



lp


všeč(0) ni všeč(0) spam(0)
 
technolog 21. maj 2012 18:07:25 Pridružen od:
14. nov 2011
598 objav
768 300 22
#2

Ja, na eni tabeli maš lahko največ 64 indexov.



Res ne vem kako ti je to ratalo, jst ne pridem nikol niti blizu temu limitu.



Če hočeš več, lahko skompajlaš mysql iz sorsa, baje je datoteka sql/unireg.h, konstanta MAX_KEY. Dej na recimo ene 100, pač kokr rabiš.


všeč(2) ni všeč(0) spam(0)
Z linuxom že 7 let. Pro web development.
 
werky 21. maj 2012 18:10:22 Pridružen od:
16. apr 2012
787 objav
796 168 26
#3

Hvala za odgovor...Samo še vedno ne razumem najbolje...Nisem namreč strokovnjak za baze (bolj totalni laik..) kaj pomeni "Ja, na eni tabeli maš lahko največ 64 indexov"



hvala...



Še to...kaj sploh predstavljajo indexi...da si bom bolje predstavljal?


všeč(0) ni všeč(0) spam(0)
 
metallon 21. maj 2012 18:14:08 Pridružen od:
28. apr 2012
362 objav
326 70 8
#4

Hmm v xml dodaj idponudbe in v MySQL dodaj idponudbe (INT oboje), ne rabi biti UNIQUE. Nato samo gledaš ali se idponudbe v xml ujema z idponudbe v bazi.Če se ujema, ne vpišeš ponudbe v bazo, če pa se ne ujema pa ponudbo vpišeš.



To je če lahko xml dopolniš, če ga ne moreš glej po imenu ponudbe oz. kaj bi bilo čimbolj uniq.


všeč(0) ni všeč(0) spam(0)
 
werky 21. maj 2012 18:16:04 Pridružen od:
16. apr 2012
787 objav
796 168 26
#5

Lahko urejam xml...samo kako potem preverim če je enako?


všeč(0) ni všeč(0) spam(0)
 
technolog 21. maj 2012 18:16:15 Pridružen od:
14. nov 2011
598 objav
768 300 22
#6

Index = kazalo



Idekse postavljamo na bazo, zato da se poizvedbe na bazo hitreje izvajajo (+ še drugi razlogi), v resnici čista analogija kazala v telefonskem imeniku.



Problem je "overindexing", to pomeni, da kaki newbi postavijo index povsod, čeprav ga sploh ne rabijo, kar ima obraten učinek, upočasnjevanje, kadar se podatke na bazi popravlja + ogromno prostora porabijo te indeksi.



Mislim, če kdo dejansko rabi 64 indexov je to lahko samo v primeru, da se dela data warehousing tip zvezda. Ne pa pri neki simpl aplikaciji. Vse indexe si lahko enostavno ogledaš v kakem phpMyAdminu.


všeč(1) ni všeč(0) spam(0)
Z linuxom že 7 let. Pro web development.
 
metallon 21. maj 2012 18:17:36 Pridružen od:
28. apr 2012
362 objav
326 70 8
#7

edin index kaj rabiš je ta,.... s katerim boš iskal... ponudbe v bazi :D


všeč(1) ni všeč(0) spam(0)
 
werky 21. maj 2012 18:19:32 Pridružen od:
16. apr 2012
787 objav
796 168 26
#8

Hvala za bološo razlago...sej pravim,nimam pojma o bazah...Samo ni mi jasno,polje lahko vpišem v bazo,ne morem pa spremenit v unique?



Čeprav ni ravno pomembno,bom verjetno upošteval Metallonov nasvet, me pa vseeno zanima v čem je štos.


všeč(0) ni všeč(0) spam(0)
 
metallon 21. maj 2012 18:32:35 Pridružen od:
28. apr 2012
362 objav
326 70 8
#9

Mogoče pokažeš.. kako imaš zgrajeno podatkovno bazo ?




werky:

Lahko urejam xml...samo kako potem preverim če je enako?




Vzameš ponudbaid iz xmlja.

$result=mysql
query("SELECT * FROM ponudbe WHERE ponudbaid=$ponudbaidxml LIMIT 1");

mysql
num_rows($result);



če je mysqlnumrows>0 pomeni da je ponudba že vpisana in je pač ne vpišeš


všeč(1) ni všeč(0) spam(0)
 
werky 21. maj 2012 18:36:50 Pridružen od:
16. apr 2012
787 objav
796 168 26
#10

Metallon:

Hmm v xml dodaj idponudbe in v MySQL dodaj idponudbe (INT oboje), ne rabi biti UNIQUE. Nato samo gledaš ali se idponudbe v xml ujema z idponudbe v bazi.Če se ujema, ne vpišeš ponudbe v bazo, če pa se ne ujema pa ponudbo vpišeš.



To je če lahko xml dopolniš, če ga ne moreš glej po imenu ponudbe oz. kaj bi bilo čimbolj uniq.




Ammm,kako pa to dosežem?


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se