大海话语 2022-03-12 09:28 采纳率: 87.9%
浏览 325
已结题

Mysql如何一次添加100条数据

最近想做一个Mysql中添加一个相同字段描述的,不同id的数据,就想一次在Sql语句中添加100条数据哈。。

下面的语句在本地 navicat for Mysql中可以用,但是在服务器端的linux中的就会报语句错误


CREATE PROCEDURE loop_insert3(IN i INT)
BEGIN
WHILE i <= 200 DO
INSERT INTO g_order(g_name,price,u_id,create_time)
VALUES ('新用户优惠券','158',CONCAT('',i),'2022-03-12 10:00:00');
SET i=i+1;
END WHILE;
END;
CALL loop_insert3(1);
  • 写回答

6条回答 默认 最新

  • 丨封尘绝念斩丨 2022-03-12 09:44
    关注
    
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Random;
    
    public class SQLGenApplication {
        public static void main(String[] args) throws IOException {
            
            StringBuilder insertBuf = new StringBuilder("INSERT INTO `table1` (`id`, `uid`, `a`, `b`) VALUES");
            String values = "('%s', '%s',  '%s.00', '%s.00'),";
            BufferedReader fis = new BufferedReader(new FileReader("fileParam.txt"));
            String line = null;
            Random r = new Random();
            
            int cnt = 0;
            int batch = 0;
            int perCnt = 2500;
            while((line = fis.readLine()) != null) {
                
                long id = Long.parseLong(line.substring(8));
    
                int i = r.nextInt(100);
                while(i <= 0 ) {
                    i = r.nextInt(100);
                }
                int i2 = r.nextInt(100);
                while(i2 < i ) {
                    i2 = r.nextInt(100);
                }
                insertBuf.append(String.format(values, id, line, i, i2));
                if(cnt < perCnt) {
                    cnt++;
    
                } else {
    
                    insertBuf.deleteCharAt(insertBuf.length()-1);
                    insertBuf.append(";");
                    FileWriter fw = new FileWriter("fileSQL" + batch + ".sql");
                    fw.write(insertBuf.toString());
                    fw.flush();
                    fw.close();
                    cnt = 0;
                    batch++;
                    
                    insertBuf =  new StringBuilder("INSERT INTO `table1` (`id`, `uid`, `a`, `b`) VALUES");
                }
            }
            if(cnt != 0 && cnt < perCnt) {
    
                insertBuf.deleteCharAt(insertBuf.length()-1);
                insertBuf.append(";");
                FileWriter fw = new FileWriter("fileSQL" + batch + ".sql");
                fw.write(insertBuf.toString());
                fw.flush();
                fw.close();
                cnt = 0;
                
            }
            
        
            fis.close();
        }
    }
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月13日
  • 修改了问题 3月12日
  • 创建了问题 3月12日

悬赏问题

  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题