Mysql transaction und table locking...



  • Also so...

    start transaction;
    select a from aa limit 1 into _a;
    if _a > 0 then
    update aa set a = a - 1;
    commit;
    else
    rollback;
    end if;

    muss ich dann die Tabelle aa noch zusätzlich mit einem Lock versehen, oder reicht da die transaction aus 😕



  • Es geht im Prinzip nur darum, ob zwischen dem select und update noch etwas reingrätschen kann und am Ende in a etwas < 0 steht. 😉

    Die übliche Leier .. ist natürlich alles viel komplizierter usw. .. kennt ihr ja :p



  • Also bei InnoDB Transactions kannst du dir sicher sein, dass die Transaction die ACID Kriterien erfüllt, und musst dir darüber eigenltich gar keine Gedanken machen. Du kannst davon ausgehen, dass alle Transactionen nacheinander passieren.


Log in to reply