SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.11.2010 14:36:07

mik1133
Участник
Зарегистрирован: 22.11.2010
Сообщений: 2

Как удалить запись в таблице через курсор?

Всем привет!
Подскажите, вот что. Делаю поиск записи в таблице через курсор. А потом хочу удалить эту запись. Как это можно сделать используя курсор, который указывает на эту запись? Че то разобраться не могу...

Вот пример хранимки

CREATE DEFINER = 'root' @'localhost'
PROCEDURE maindb.deleterecord(IN delkey INT)
BEGIN

  DECLARE ikey  INT;

  DECLARE cur1 CURSOR FOR SELECT
    `key`
  FROM
    `testtable`;

  OPEN cur1;

read_loop:
  LOOP
    FETCH cur1 INTO ikey;
    IF ikey = delkey THEN
      LEAVE read_loop;
    END IF;
  END LOOP;

-- ??? удалить запись cur1 ???

  CLOSE cur1;

END

Неактивен

 

#2 22.11.2010 15:38:38

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как удалить запись в таблице через курсор?

Курсоры в MySQL работают только на чтение. Вам нужно запомнить
id записи, а потом удалить ее обычным DELETE.

Конкретно в Вашем примере, впрочем, можно просто написать
DELETE FROM testtable WHERE key = delkey wink

Неактивен

 

#3 22.11.2010 15:58:13

mik1133
Участник
Зарегистрирован: 22.11.2010
Сообщений: 2

Re: Как удалить запись в таблице через курсор?

Понятно. Спасибо за ответ!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson