You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量向MySQL的curtain_entry_item表插入600条价格数据?

批量插入窗帘价格表数据到MySQL的高效方案

手动逐行插入600条数据确实太浪费时间了,这里给你两种实用的批量插入方案,根据你的MySQL版本选择就行:

方法一:MySQL 8.0+ 用递归CTE生成组合(推荐)

如果你的MySQL版本是8.0及以上,递归公共表表达式(CTE)是最简洁高效的方式,直接生成所有width和length的组合,一次性插入:

-- 开启事务提升插入性能(可选但推荐)
START TRANSACTION;

INSERT INTO curtain_entry_item (`group`, width, length, price)
WITH RECURSIVE width_seq AS (
    -- 起始width为20cm
    SELECT 20 AS width_val
    UNION ALL
    -- 每次加10,直到240cm
    SELECT width_val + 10 FROM width_seq WHERE width_val < 240
),
length_seq AS (
    -- 起始length为20cm
    SELECT 20 AS length_val
    UNION ALL
    -- 每次加10,直到300cm
    SELECT length_val + 10 FROM length_seq WHERE length_val < 300
)
-- 交叉连接得到所有宽长组合,关联固定价格表31,价格固定为30
SELECT 
    31 AS `group`,
    CONCAT(width_val, 'cm') AS width,
    CONCAT(length_val, 'cm') AS length,
    30 AS price
FROM width_seq w
CROSS JOIN length_seq l;

COMMIT;

说明:

  • group是MySQL的保留关键字,所以必须用反引号``包裹,不然会报语法错误。
  • 如果你的width和length字段是数值类型(比如存20而不是20cm),直接去掉CONCAT,用width_val和length_val即可。
  • 如果价格不是固定值,比如和宽长有关,可以直接修改SELECT里的price部分,比如(width_val * length_val) / 100这类表达式,根据你的定价规则调整。

方法二:MySQL 5.x 用存储过程循环插入

如果你的MySQL版本低于8.0,不支持CTE,那可以写一个存储过程来循环生成所有组合并插入:

-- 定义存储过程
DELIMITER //
CREATE PROCEDURE InsertCurtainPriceData()
BEGIN
    DECLARE curr_width INT DEFAULT 20;
    DECLARE curr_length INT DEFAULT 20;
    
    -- 开启事务
    START TRANSACTION;
    
    -- 循环所有width值
    WHILE curr_width <= 240 DO
        SET curr_length = 20;
        -- 循环当前width对应的所有length值
        WHILE curr_length <= 300 DO
            INSERT INTO curtain_entry_item (`group`, width, length, price)
            VALUES (31, CONCAT(curr_width, 'cm'), CONCAT(curr_length, 'cm'), 30);
            SET curr_length = curr_length + 10;
        END WHILE;
        SET curr_width = curr_width + 10;
    END WHILE;
    
    COMMIT;
END //
DELIMITER ;

-- 调用存储过程执行插入
CALL InsertCurtainPriceData();

后续操作:

执行完插入后,如果你不需要这个存储过程了,可以删掉它:

DROP PROCEDURE IF EXISTS InsertCurtainPriceData;

额外提示

  • 插入前可以先备份表,或者测试插入少量数据验证逻辑是否正确,避免出错后返工。
  • 如果表中有唯一约束或者索引,批量插入前可以暂时禁用索引,插入完成后再开启,能大幅提升插入速度。

内容的提问来源于stack exchange,提问作者Wouter Van Domselaar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:21:22