Как мы можем использовать mysql_affected_rows() в хранимой процедуре
Как мы можем использовать mysql_affected_rows()
в хранимой процедуре.
Ответы
Ответ 1
Используйте информационную функцию ROW_COUNT().
ROW_COUNT() возвращает количество строк изменен, удален или вставлен последнее утверждение, если это было ОБНОВЛЕНИЕ, DELETE или INSERT. Для других операторов, значение может не быть осмысленным.
Значение ROW_COUNT() такое же, как значение из Функция mysql_affected_rows() C API и количество строк, которое mysql клиент отображает следующую инструкцию выполнение.
Ответ 2
Пример
BEGIN
DECLARE countRow INT;
DECLARE roomTypeId INT;
INSERT INTO room_type (room_type)
SELECT * FROM (SELECT paramRoomType) AS tmp
WHERE NOT EXISTS (
SELECT room_type_id FROM room_type WHERE room_type = paramRoomType
) LIMIT 1;
SET countRow = ROW_COUNT();
IF(countRow > 0) THEN
SET roomTypeId = LAST_INSERT_ID();
INSERT hotel_has_room_type (hotel_id,room_type_id) VALUES (paramHotelId,roomTypeId);
END IF;
END
Ответ 3
Вы не можете использовать mysql_affected_rows()
в хранимой процедуре, так как это функция C API. Вы можете использовать функцию FOUND_ROWS()
, которая дает аналогичную функциональность. Подробнее см. Ссылку .