以下是一个示例存储过程,用于在新增数据时进行校验:

DELIMITER //

CREATE PROCEDURE add_new_record(
    IN p_name VARCHAR(255),
    IN p_email VARCHAR(255),
    IN p_phone VARCHAR(255),
    OUT p_result VARCHAR(255)
)
BEGIN
    -- 校验姓名不为空
    IF p_name IS NULL OR p_name = '' THEN
        SET p_result = '姓名不能为空';
        RETURN;
    END IF;
    
    -- 校验邮箱格式
    IF p_email IS NOT NULL AND p_email != '' AND NOT (p_email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$') THEN
        SET p_result = '邮箱格式不正确';
        RETURN;
    END IF;
    
    -- 校验手机号格式
    IF p_phone IS NOT NULL AND p_phone != '' AND NOT (p_phone REGEXP '^[0-9]{11}$') THEN
        SET p_result = '手机号格式不正确';
        RETURN;
    END IF;
    
    -- 插入数据
    INSERT INTO my_table (name, email, phone) VALUES (p_name, p_email, p_phone);
    
    SET p_result = '新增成功';
END //

DELIMITER ;

在调用这个存储过程时,需要传入三个参数:姓名、邮箱和手机号。如果校验通过,会将数据插入到数据表中,并且将输出参数设置为'新增成功'。如果校验失败,则会返回对应的错误信息。

例如,调用存储过程的语句可以如下:

CALL add_new_record('张三', 'zhangsan@example.com', '13812345678', @result);
SELECT @result;

这将向数据表中插入一条记录,同时将输出参数设置为'新增成功'。如果传入的参数不符合规定,例如姓名为空或邮箱格式不正确,会返回对应的错误信息。

MySQL 存储过程:新增数据校验与错误信息返回

原文地址: https://www.cveoy.top/t/topic/nDmr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录