mysql 编写存储过程 查询到数据插入,没查询到报异常
时间: 2024-02-17 12:05:13 浏览: 36
好的,针对您的问题,我可以提供以下 MySQL 存储过程的示例代码:
```
CREATE PROCEDURE `insert_if_not_exist`(IN `param` INT)
BEGIN
DECLARE `count` INT;
SELECT COUNT(*) INTO `count` FROM `your_table` WHERE `your_column` = `param`;
IF `count` = 0 THEN
INSERT INTO `your_table` (`your_column`) VALUES (`param`);
ELSE
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Data already exists!';
END IF;
END;
```
这个存储过程接收一个整数参数 `param`,然后查询表 `your_table` 中是否已经存在 `your_column` 列的值等于 `param`。如果查询结果为空,说明数据不存在,就执行插入操作;否则,就抛出一个自定义的异常,提示数据已经存在。
您可以根据实际情况修改表名、列名、参数名等内容,并将这段代码在 MySQL 中执行,以创建这个存储过程。然后,执行以下语句来测试它:
```
CALL `insert_if_not_exist`(1);
CALL `insert_if_not_exist`(1);
```
第一次执行会插入一条数据,第二次执行会抛出一个异常,提示数据已经存在。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)