zoukankan      html  css  js  c++  java
  • 使用Mysql存储过程批量插入数据

    需求:在不改变现有数据的情况下,插入N条数据;

    实例表:

    mysql> desc student;
    +------------+-------------+------+-----+---------+-------+
    | Field      | Type        | Null | Key | Default | Extra |
    +------------+-------------+------+-----+---------+-------+
    | id         | int(10)     | NO   | PRI | NULL    |       |
    | name       | varchar(20) | NO   |     | NULL    |       |
    | sex        | varchar(4)  | YES  |     | NULL    |       |
    | birth      | year(4)     | YES  |     | NULL    |       |
    | department | varchar(20) | YES  |     | NULL    |       |
    | address    | varchar(50) | YES  |     | NULL    |       |
    +------------+-------------+------+-----+---------+-------+

    创建语句:

    DROP TABLE IF EXISTS `student`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `student` (
      `id` int(10) NOT NULL,
      `name` varchar(20) NOT NULL,
      `sex` varchar(4) DEFAULT NULL,
      `birth` year(4) DEFAULT NULL,
      `department` varchar(20) DEFAULT NULL,
      `address` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `student`
    --
    
    LOCK TABLES `student` WRITE;
    /*!40000 ALTER TABLE `student` DISABLE KEYS */;
    INSERT INTO `student` VALUES (901,'张老大','',1985,'计算机系','北京市海淀区'),(902,'张老二','',1986,'中文系','北京市昌平区'),(903,'张三','',1990,'中文系','湖南省永州市'),(904,'李四','',1990,'英语系','辽宁省阜新市'),(905,'王五','',1991,'英语系','福建省厦门市'),(906,'王六','',1988,'计算机系','湖南省衡阳市');
    /*!40000 ALTER TABLE `student` ENABLE KEYS */;
    UNLOCK TABLES;

    创建存储过程:

    DROP PROCEDURE IF EXISTS proc_i_loop;  
    DELIMITER ;;
    CREATE PROCEDURE proc_i_loop(IN loop_times INT)  
    BEGIN  
    DECLARE var INT DEFAULT 0;
      
    set var = (select count(*) from student);  
    select var;  
    set loop_times=loop_times+var;
    
    WHILE var<loop_times DO  
    SET var=var+1;  
    INSERT INTO student(id,name,sex,birth,department,address) VALUES (var,CONCAT('test',var),'',1999,'法律系',NULL);  
    END WHILE;  
    END  
    ;;
    DELIMITER ;

    执行插入:

    call proc_i_loop(100000);
  • 相关阅读:
    关于防盗链
    原生php登陆注册
    thinkPHP的D方法和M方法用法和区别
    Python中类与对象的关系
    解决_CRT_SECURE_NO_WARNINGS 警告
    骨头汤、豆浆、海带都不能补钙,最补钙的食物是它
    蘑菇鸡蛋汤
    CString和string在unicode与非unicode下的相互转换(转)
    【CString与string转换】不存在从 "LPWSTR" 转换到 "std::basic_string<char, std::char_traits<char>, std::allocator(转)
    LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”(转)
  • 原文地址:https://www.cnblogs.com/seulki/p/7390571.html
Copyright © 2011-2022 走看看