innodb версионность транзакции

berkut

Новичок
innodb версионность транзакции

подскажите, если в рамках 1 тразакции выполнить:
SELECT field FROM
new_val = field + 1; - __упрощенно__
UPDATE tbl SET field = new_val
то может случится ахтунг, когда во время всего этого поле было изменено кем-то ещё и нужно лочить таблицу на запись или с версионностью о таком не нужно париться?? чую, что нужно лочить палюбас, но не уверен
 

berkut

Новичок
ого какая штука классная, не знал. а когда эти блокировки снимаются? я понял, что при комите транзакции, а если вне транзакции или я хочу раньше снять.
 

Gas

может по одной?
Хотя, у тебя пример как-то сильно упрощённый (не понятно что откуда выбирается и где апдейтится), может мой совет и не правильный, увидел знакомые буквы и тригер сработал :)
а если вне транзакции или я хочу раньше снять
имхо, врят-ли, а что предпологаются "долгие" транзакции?
 

berkut

Новичок
а что предпологается что будет "долгая" транзакция?
здесь нет. так, чтобы знать на будущее.
а выбирается и апдейтиться 1 поле из 1 таблицы - т.е. самое мазёвое для меня select for update

-~{}~ 04.04.08 15:54:

насчёт SET field = (field + 1) - знаю
 
Сверху