kljuka

Statistika

Pridružen/a:
26 feb 2008, 21:58
Zadnjič aktiven:
Prispevki:
Teme:
1 | Vse teme
1
0
0
#4

UPDATE imetabele tab1

SET imepolja=(SELECT imepolja FROM imetabele2 tab2 WHERE tab1.imepolja=tab2.imepolja LIMIT 1)

WHERE ID=xyz




Gogy: kako s tem pridobim tudi vsebino vrstice, ki jo bom update-al? Bistvo je, da označim vrstico, ki jo bom posodobil, nato pa to vrstico preberem (da jo lahko začnem obedlovati)




Zakaj bi dva hkrati updatala isto tabelo




Tody: gre za design: ne sme obstajati opcija, da 2 izbereta isto vrstico in jo sočasno posodabljata.




Če imaš v tej tabeli nek indikator uporabnika (ali seje, ...), lahko narediš npr. UPDATE pred INSERT:

UPDATE SET updating=1,updater=@1234 WHERE updater=NULL,...

SELECT WHERE updating=1 AND updater@1234, ...




Packac: tvoja rešitev reši problem, a precej zakomplicira zadevo, ker je potrebno identificirati updater-je in dodati novo polje v tabelo.



Ideja s transakcijami mi je najbolj všeč. Ali MySQL z MyISAM omogoča transakcije? Pa ne sme se zgoditi, da je v času transakcije tabela zaklenjena, ker potem vsi procesi čakajo, kar vodi v ... vedno daljše vrste in kolaps sistema.


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

print_r($rezultat);


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

Ali kdo pozna način, kako iz MySQL baze podatkov najprej izbrati vrstico in jo v istem hipu update-ati. Nekaj takega kot spodaj, a le v enem stavku:




SELECT * FROM ... LIMIT 1;

UPDATE ... SET updating='1' (izbrano vrstici)




Ozadje:

verjetno je to ena najpogostejših operacij: izbereš vrstico, ki jo boš posodabljal in jo označiš kot "zasedeno" - ki se update-a. Naslednji, ki izbira vrstico za posodobljati ne sme izbrati iste, ker se ta že posodablja.

Težava:

Če 2 uporabnika(programa) istočasno izbirata vrstico, ki jo bosta posodabljala, bosta oba izbrala isto (ker je noben še ne uspe UPDATE-ati kot zasedeno).



Kako rešiti zgornji problem v MyISAM bazi podatkov?

Hvala za vse nasvete


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

Obstaja.



http://www.cool-proxy.net proxy spletno mesto, ki stalno preverja proxy strežnike (moje delo :D).



Sicer pa nisi napisal, kakšen proxy strežnik potrebuješ:

CGI proxy (uporaba kar v oknu browserja brez kakršnihkoli nastavitev)

HTTP proxy (nastaviš browser, nato uporaba v browserju) - dobiš na http://www.cool-proxy.net

ali kakšen drug



Lp


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