mysql使用存储过程批量生成学生表、课程表和成绩表测试数据

create table Course(
    c_id int PRIMARY KEY,
    name varchar(10)
)


create table Student(
    id int PRIMARY KEY,
    name varchar(10)
)


CREATE table SC(
    sc_id int PRIMARY KEY,
    s_id int,
    c_id int,
    score int
)




//课程表写入100条数据
DELIMITER ;; 
CREATE PROCEDURE test_insert_c() 
BEGIN 
DECLARE Y INT DEFAULT 1;
WHILE Y<=100
DO
INSERT INTO test.Course VALUES(Y,CONCAT('课程',Y)); 
SET Y=Y+1; 
END WHILE ; 
COMMIT; 
END;; 
CALL test_insert_c();




//学生表写入70000条数据
DELIMITER ;; 
CREATE PROCEDURE test_insert() 
BEGIN 
DECLARE Y INT DEFAULT 1;
WHILE Y<=70000
DO
INSERT INTO test.Student VALUES(Y,CONCAT('学生',Y)); 
SET Y=Y+1; 
END WHILE ; 
COMMIT; 
END;; 
CALL test_insert();


//成绩表写入700000条数据
DELIMITER ;; 
CREATE PROCEDURE test_insert_sc() 
BEGIN 
DECLARE Y INT DEFAULT 1;  
DECLARE s_id INT DEFAULT 1;
DECLARE c_id INT DEFAULT 1;
DECLARE score INT DEFAULT 1;


WHILE Y<=700000
DO
INSERT INTO test.SC VALUES(Y,s_id,c_id,score); 
SET Y=Y+1; 
SELECT FLOOR(1 + (RAND() * 100)) into c_id;
SELECT FLOOR(1 + (RAND() * 100)) into score;
SELECT FLOOR(1 + (RAND() * 70000)) into s_id;
END WHILE ; 
COMMIT; 
END;; 
CALL test_insert_sc();


说明:
DELIMITER生命结束符,定义命令结束,默认为;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值