Visual Studio Code 中安装插件baidu智能建表

DDL(智能生成,在Visual Studio Code 中安装插件baidu)

CREATE TABLE student (
    id INT PRIMARY KEY AUTO_INCREMENT,
    userName VARCHAR(100) NOT NULL,
    phone VARCHAR(20),
    age INT,
    sex VARCHAR(10),
    introduce TEXT
);

问题一:帮我根据DDL生成一个可以添加20万条数据的存储过程(选中DDL前提下)

​
​
DELIMITER //

CREATE PROCEDURE InsertRandomStudents(IN num_students INT)
BEGIN
    DECLARE counter INT DEFAULT 0;
    DECLARE random_userName VARCHAR(100);
    DECLARE random_phone VARCHAR(20);
    DECLARE random_age INT;
    DECLARE random_sex ENUM('Male', 'Female', 'Other');
    DECLARE random_introduce TEXT;

    WHILE counter < num_students DO
        -- Generate random userName (for simplicity, using 'Student' prefix with a number)
        SET random_userName = CONCAT('Student', FLOOR(RAND() * 1000000));
        
        -- Generate random phone number
        SET random_phone = CONCAT(FLOOR(RAND() * (9999999999 - 1000000000 + 1)) + 1000000000);
        
        -- Generate random age between 18 and 30
        SET random_age = FLOOR(RAND() * (30 - 18 + 1)) + 18;
        
        -- Generate random sex
        SET random_sex = ELT(1 + FLOOR(RAND() * 3), 'Male', 'Female', 'Other');
        
        -- Generate random introduce (for simplicity, using a short text)
        SET random_introduce = CONCAT('This is a random introduction for ', random_userName);
        
        -- Insert the generated data into the student table
        INSERT INTO student (userName, phone, age, sex, introduce)
        VALUES (random_userName, random_phone, random_age, random_sex, random_introduce);
        
        -- Increment the counter
        SET counter = counter + 1;
    END WHILE;
END //

DELIMITER ;

​CALL InsertRandomStudents(200000);

​

问题二:帮我根据DDL生成一个添加数据的存储过程,要求2个参数为userName与introduce,插入的数据userName不能以张王李赵开头(选中DDL前提下)

DELIMITER //

CREATE PROCEDURE InsertStudent(IN p_userName VARCHAR(100), IN p_introduce TEXT)
BEGIN
    -- 检查userName是否以'张'、'王'、'李'或'赵'开头
    IF LEFT(p_userName, 1) = '张' OR LEFT(p_userName, 1) = '王' OR LEFT(p_userName, 1) = '李' OR LEFT(p_userName, 1) = '赵' THEN
        -- 如果是以这些姓氏开头,则不执行插入并返回错误消息
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'UserName cannot start with 张, 王, 李, or 赵';
    ELSE
        -- 如果不是以这些姓氏开头,则执行插入操作
        INSERT INTO student (userName, introduce) VALUES (p_userName, p_introduce);
    END IF;
END //

DELIMITER ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值