mysql创建批量更新存储过程和执⾏存错过程⼀、创建批量更新存储过程
CREATE PROCEDURE update_edge_charge_status()
BEGIN
/*
* 更新门禁收费状态.
*/
-- 1.创建临时表
CREATE TEMPORARY TABLE unit_tmp AS
SELECT
unit.id,unit.status
FROM
unit unit
WHERE
NOW() > d_date and unit.status = 1;
-- 2.在临时表中添加主键索引
ALTER TABLE unit_tmp ADD PRIMARY KEY (`id`);
-- 3.将临时表中的数据更新为⽋费状态
UPDATE unit_tmp SET status = 2;
-- 4.级联更新
mysql视图和存储过程UPDATE unit
INNER JOIN unit_tmp ON unit.id = unit_tmp.id
SET unit.status = unit_tmp.status;
END
⼆、执⾏存错过程
CALL update_edge_charge_status();
通过建⽴临时表⽤主键索引来批量更改表信息,安全系数较⾼,运⾏速度快,不会影响原表的使⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论