create procedure pb_pro1(in publisher_name varchar(20),in book_name varchar(30),book_sum int,price int) -> begin -> select publishername,bookname,booksum,price -> from publisher,book -> where publisher.publisherid=book.publishid -> and publisher_name=publishername -> and book_name=bookname; -> end$$ delimiter;并执行该存储过程检查其正确性
时间: 2023-12-26 20:04:44 浏览: 64
好的,您的问题是关于一个 MySQL 存储过程的创建和执行。
下面是该存储过程的创建代码,可以直接复制粘贴到 MySQL 命令行中执行:
```
DELIMITER $$
CREATE PROCEDURE pb_pro1(
IN publisher_name VARCHAR(20),
IN book_name VARCHAR(30),
IN book_sum INT,
IN price INT
)
BEGIN
SELECT publishername, bookname, booksum, price
FROM publisher, book
WHERE publisher.publisherid = book.publishid
AND publisher_name = publishername
AND book_name = bookname;
END $$
DELIMITER ;
```
在执行该存储过程之前,需要先确认以下两个表是否存在,并且表中是否有对应的数据:
- `publisher` 表,包含 `publisherid` 和 `publishername` 两个字段;
- `book` 表,包含 `bookid`、`bookname`、`publishid`、`booksum` 和 `price` 五个字段。
如果这两个表都已经存在,并且有对应的数据,那么可以直接执行该存储过程,如下所示:
```
CALL pb_pro1('PublisherName', 'BookName', 10, 100);
```
其中,`PublisherName` 和 `BookName` 分别是你要查询的出版社名称和书籍名称,`10` 和 `100` 是你要查询的书籍数量和价格,可以根据实际情况进行修改。
执行成功后,会返回一个结果集,包含符合条件的记录。如果执行失败,可以根据错误信息进行调试。
阅读全文