[英]Using stored procedure in MYSQL 5.7 to fetch and update
我有下表..
CREATE TABLE Coupons (
cid INT(11) PRIMARY KEY,
coupon_name VARCHAR(255),
partner VARCHAR(255),
is_active INT(1)
);
INSERT INTO `table_name`(cid,coupon_name,partner_name,is_active) VALUES (0,'SWIGGYONE','SWIGGY',1);
INSERT INTO `table_name`(cid,coupon_name,partner_name,is_active) VALUES (1,'ZOMATOONE','ZOMATO',1);
INSERT INTO `table_name`(cid,coupon_name,partner_name,is_active) VALUES (2,'SWIGGYONE','SWIGGY',1);
INSERT INTO `table_name`(cid,coupon_name,partner_name,is_active) VALUES (3,'ZOMATOTWO','ZOMATO',1);
我希望从每个合作伙伴那里获取一张 ACTIVE 优惠券并将其 is_active col 更新为 0。我正在使用 MYSQL 5.7
我也希望获取那些 is_active 设置为 0 的记录。
我对 MYSQL 5.7 中使用的事务/@variables/存储过程没有足够的了解
尝试这个:
CREATE PROCEDURE `pr_coupons`()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
/** Inactivate the very first coupon **/
UPDATE Coupons
SET is_active = 0
WHERE Coupons.cid IN
(
SELECT cid from
(
SELECT cid
FROM Coupons
WHERE Coupons.is_active = 1
GROUP BY Coupons.partner
) AS inner_table
);
/** Select active coupons **/
SELECT *
FROM Coupons
WHERE is_active = 1;
END
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.