一、问题描述
1.之前使用的MySQL数据库版本为5.7.23-log,在批量插入数据时使用REPLACE(UUID(), '-', ''),不存在重复问题。
2.后来数据库升级到5.7.36,同样的存储过程就不能使用了,原因就是REPLACE(UUID(), '-', '')重复。
这里是存储过程:
CREATE PROCEDURE `SUMMARY_MONTH` (
IN Y INT,
IN M INT
)
BEGIN
DECLARE C INT DEFAULT 0;
SELECT COUNT(*)
INTO C
FROM cell_month_flow
WHERE YEAR = Y
AND MONTH = M;
IF C = 0 THEN
INSERT INTO cell_month_flow
SELECT REPLACE(UUID(), '-', '') AS ID, CELL_ID
, YEAR, MONTH, SUM(QUANTITY) AS QUANTITY
FROM cell_allday_flow
WHERE YEAR = Y
AND MONTH = M
GROUP BY cell_id;
END