提交作业请点击:
https://www.yuque.com/forms/share/c194f63e-b78b-4b01-a6d5-92188aba079c
-- 任务七:使用事务逻辑定义存储过程,
-- 删除物品“九阳豆浆机”及其竞价记录信息(20分)
DROP PROCEDURE IF EXISTS proc_item;
CREATE PROCEDURE proc_item(item_Name VARCHAR(50))
COMMENT '删除物品及其竞价记录信息'
BEGIN
DECLARE item_ID int ;
DECLARE EXIT HANDLER FOR SQLSTATE '45000' ROLLBACK; -- 事务回滚
SELECT itemID FROM items WHERE itemName = item_Name INTO item_ID;
-- 开启事务模式
START TRANSACTION ;
-- 1.删除竞价记录
DELETE FROM bid WHERE itemID = item_ID;
-- 若不成功,回滚
IF ROW_COUNT()=0 THEN
SIGNAL SQLSTATE '45000' SET message_text = '无数据!' ;
END IF;
-- 2.删除物品
DELETE FROM items WHERE itemID = item_ID;
-- 若不成功,回滚
IF ROW_COUNT()=0 THEN
SIGNAL SQLSTATE '45000' SET message_text = '无数据!' ;
END IF;
-- 以上两个操作都成功,则提交事务
COMMIT ;
END;
-- 调用存储过程,删除九阳豆浆机
CALL proc_item('九阳豆浆机');