За последние 24 часа нас посетили 19196 программистов и 1643 робота. Сейчас ищут 904 программиста ...

блокировка курсоров в innodb

Тема в разделе "PHP и базы данных", создана пользователем simple, 27 окт 2010.

  1. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    Народ кто знает, блокирует ли mysql курсоры на чтения в таблицах innodb или нет? Если нет то есть какая нибудь хитрость как это сделать для целостности данных...FOR UPDATE блокирует строки для обновления, но будет ли работать это в курсорах и как сделать блокирвку для чтения, чтобы если один процесс читает запись в курсор, другой бы шел лесом и не лез бы туды =)
     
  2. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    нашел такую функцию как get_lock, только не понял как ее применять к таблице =(
     
  3. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    А если я в ХП все это дело оберну в транзакцию то даст ли мне это тот эффект что я добиваюсь?
    [sql]
    DECLARE cur1 CURSOR FOR SELECT*FROM table1;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
    START TRANSACTION;
    OPEN cur1;
    WHILE done=0 AND DO
    FETCH cur1 INTO a,b,c;
    .....обработка данных курсора в цикле
    END WHILE;
    CLOSE cur1;
    COMMIT;
    END
    [/sql]
    как можно удостовериться, блокируется ли таблица для курсоров других процессов или нет?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    с какой целью это все?
     
  5. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    для целостности данных