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.