DELIMITER ;; CREATE DEFINER='root'@'localhost’ PROCEDURE check_reader_sigh up'(in reader_name_in varchar(20), in id num in varchar(20) , out result varchar(1))begin select exists(select * from readers where binary reader name = reader-name in) into result;if result =1 then set result =用户名已存在';select result; commit; end if; select exists(select * from readers where id num = id num in) into result;if result =1'then set result =身份证号已被注册'; end if; if result =e' then select 'Ok'; else select result; end if;
时间: 2023-10-23 16:14:17 浏览: 46
这是一段 MySQL 存储过程的代码,用于检查读者(readers)表中指定读者名称(reader_name_in)和身份证号(id num)是否已被注册。它使用了 DELIMITER 命令,将默认的分号(;)改为两个分号(;;),以避免存储过程中使用的分号与 SQL 语句中的分号混淆。在执行该代码前,需要先创建一个名为 readers 的表,并为其添加相应的字段。
该存储过程接受三个参数:reader_name_in(读者名称)、id num(身份证号)和 result(输出参数,用于返回检查结果)。首先,它会检查指定的读者名称是否已存在,如果存在,则将 result 设置为“用户名已存在”。如果不存在,则继续检查身份证号是否已被注册。如果已被注册,则将 result 设置为“身份证号已被注册”。如果检查结果为“OK”,则将 result 设置为“OK”,否则将 result 设置为检查结果。最后,将 result 返回给调用者。
相关问题
DELIMITER ;; CREATE DEFINER='root@'localhost’ PROCEDURE update_reader_password'(in reader_name_in varchar(20), in password in varchar(35))begin update readers set password = password in where binary reader name = reader name in; end ;; DELIMITER ;
这是一段用于更新读者密码的存储过程的代码。它接受两个输入参数:读者姓名和新的密码。其中,DEFINER='root@'localhost' 表示这个存储过程是由 root 用户在本地主机上创建的。
存储过程的主体部分只包含了一个 SQL 语句,用于更新 readers 表中对应读者的密码。这个 SQL 语句使用了 WHERE 子句来指定要更新的记录,其中 binary reader name = reader name in 表示要匹配读者姓名,注意这里也存在语法错误,应该是 reader_name_in。
另外,在这个 SQL 语句中,使用了输入参数 password,它的值被设置为 password in。这是为了避免与 MySQL 中的保留关键字 password 冲突,使用了一个后缀“_in”。
需要注意的是,这段代码中存在一些语法错误,例如 DELIMITER 后面的分隔符应该是两个分号,而不是一个。此外,存储过程的结束标记也应该是两个分号,而不是一个。最后,SQL 语句中的 reader name 和 password 也应该使用下划线连接。
DELIMITER ;; CREATE DEFINER=~root~@localhostPROCEDURE check reader sigh up(in reader_name in varchar(20), in id num in varchar(20) , out result varchar(1))begin select exists(select * from readers where binary reader name = reader name in) into result;if result =1' then set result = 用户名已存在';select result; commit; end if; select exists(select * from readers where id num = id num in) into result;if result =1' then set result =身份证号已被注册·;end if; if result ="e' then select "Ok'; else select result; end if;
这段代码也是用于检查读者注册信息的存储过程,但是它存在多个语法错误。
首先,DEFINER=~root~@localhost 应该是 DEFINER='root'@'localhost',其中 root 应该是一个有效的 MySQL 用户名。
其次,在第一行中,分隔符的定义应该使用两个分号,而不是一个。
接下来,在第一行的 PROCEDURE 后面应该加上一个空格,即 PROCEDURE check_reader_sigh_up。
在第二个输入参数 id num 的定义中,应该使用下划线来连接单词,即 id_num。
在第二个 SELECT 语句中,字符串“身份证号已被注册·”中的“·”应该是一个英文句点。
在最后一个 IF 语句中,字符串“e'”应该是单引号“'”。
最后,在存储过程的结束标记中,应该使用两个分号。
修改后的代码如下:
```
DELIMITER ;;
CREATE DEFINER='root'@'localhost' PROCEDURE check_reader_sigh_up(in reader_name_in varchar(20), in id_num_in varchar(20), out result varchar(1))
BEGIN
SELECT EXISTS(SELECT * FROM readers WHERE binary reader_name = reader_name_in) INTO result;
IF result = 1 THEN
SET result = '用户名已存在';
SELECT result;
COMMIT;
END IF;
SELECT EXISTS(SELECT * FROM readers WHERE id_num = id_num_in) INTO result;
IF result = 1 THEN
SET result = '身份证号已被注册';
END IF;
IF result = 'e' THEN
SELECT 'Ok';
ELSE
SELECT result;
END IF;
END ;;
DELIMITER ;
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)