当前位置: 首页 > 编程笔记 >

mysql 存储过程判断重复的不插入数据

曹原
2023-03-14
本文向大家介绍mysql 存储过程判断重复的不插入数据,包括了mysql 存储过程判断重复的不插入数据的使用技巧和注意事项,需要的朋友参考一下

mysql存储过程中

下面是一个较常见的场景,判断表中某列是否存在某值,如果存在执行某操作

需要注意的是不能用if exists;

exists可以在where后面或者在create object是使用,但是在if语句中不可以使用,只能用变通的方法。

delimiter $$
create procedure proc_add_book(in $bookName varchar(200),in $price float)
begin
  declare $existsFlag int default 0;
  select bookId into $existsFlag from book where bookName = $bookName limit 1;
  if bookId > 0 then
  #if not exists (select * from book where bookNumber = $bookName) then
    insert into book(bookNumber,price) values($bookName,$price);
  end if;
end$$
delimiter ;
 类似资料:
  • 本文向大家介绍sql 判断函数、存储过程是否存在的代码整理,包括了sql 判断函数、存储过程是否存在的代码整理的使用技巧和注意事项,需要的朋友参考一下 下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助。

  • 问题内容: 这与问题653714非常相似,但是对于MySQL而不是SQL Server。 基本上,我有一个复杂的选择,它是几个存储过程的基础。我想在存储过程中共享代码,但是,我不确定该怎么做。我可以这样做的一种方法是,使共享选择存储过程,然后从其他存储过程中调用该存储过程。我不知道如何使用嵌套存储过程的结果集。如果我可以将它们放在临时表中,则可以有效地使用结果,但是我不知道如何将它们放入临时表中。

  • 我们前面所学习的 MySQL 语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,经常会有需要多条 SQL 语句处理多个表才能完成的操作。 例如,为了确认学生能否毕业,需要同时查询学生档案表、成绩表和综合表,此时就需要使用多条 SQL 语句来针对这几个数据表完成处理要求。 存储过程是一组为了完成特定功能的 SQL 语句集合。使用存储过程的目的是将常用或复杂的工作预先用 SQL

  • 分隔符$$CREATE PROCEDURE

  • 问题内容: 存储过程的执行情况如何?是否值得使用它们而不是在PHP / MySQL调用中实现复杂的查询? 问题答案: 存储过程将为您带来一点性能提升,但是大多数情况下,它们是用于执行用简单查询很难或不可能完成的任务。存储过程非常适合简化许多不同类型的客户端对数据的访问。数据库管理员之所以喜欢它们,是因为他们控制数据库的使用方式,而不是将这些细节留给开发人员。 寻找索引和适当的表设计以获得更好的性能

  • 问题内容: 我有一个来自此(google book )的mysql存储过程,一个例子是这样的: 该程序编译正常。(我在ubuntu中使用MySQL查询浏览器)。 但是,当我调用该过程时: (也在查询浏览器中) 它返回一个错误: 为什么这个例子不起作用? 问题答案: 无法复制。对我来说效果很好: 也许您应该粘贴整个错误消息,而不是对其进行汇总。