关闭

首先灌入一万条数据(利用msyql存储过程)

145人阅读 评论(0) 收藏 举报
分类:

说到msyql引擎,InnoDB和MyISam的区别。
我们暂时只要知道两点:
1.InnoDB支持外键和事物,而MyISam不支持
2.事务性表应该使用InnoDB,频繁读取如select操作很频繁的应该使用MyISam引擎。

我们新建了2张表:user_sys和user_sys2,字段都一样,只是一个使用InnoDB引擎,一个使用MyISam引擎。

我们使用mysql存储过程的方式,给表填充数据。
使用mysql客户端,新建函数—选择存储过程。
这里写图片描述

BEGIN

  SET @num=1;
  WHILE @num<=20 DO
    IF t=1 THEN
      INSERT INTO user_sys(user_name,user_pwd)value(concat('user',@num),'123456');
    ELSE
      INSERT INTO user_sys2(user_name,user_pwd)value(concat('user',@num),'123456');
    END IF;
    SET @num=@num+1;
  END WHILE;

END;

上面语句,定义了变量num,<=20为条件循环执行插入表的SQL语句,根据传入的参数不同,插入的insert语句不同。
SQL预览:

CREATE PROCEDURE `myshop`.`<function_name>`(in t int)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN

  SET @num=1;
  WHILE @num<=20 DO
    IF t=1 THEN
      INSERT INTO user_sys(user_name,user_pwd)value(concat('user',@num),'123456');
    ELSE
      INSERT INTO user_sys2(user_name,user_pwd)value(concat('user',@num),'123456');
    END IF;
    SET @num=@num+1;
  END WHILE;

END;

如何调用mysql的存储过程:

call initdb(1);
#initdb是我们上面定义存储过程时保持的名字
#并且上面的存储过程我们也定义了参数
#所以调用类似函数的方式

最终就完成了快速的给user_sys表和user_sys2表,插入20条数据。

如果要插入10000条,只需要修改成@num<=10000

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1053772次
    • 积分:21444
    • 等级:
    • 排名:第343名
    • 原创:1213篇
    • 转载:156篇
    • 译文:0篇
    • 评论:102条
    最新评论