之前在开发过程中,利用sql查询一个对象是否存在时,总是报异常,异常的意思是说不能把多个对象set进一个对象中,然后通过group by,发现数据中重复数据有十几万条,于是编写了一个存储过程用来删除重复,执行了一下,效率还是超快的,一下是sql。
CREATE PROCEDURE delete_repeatUerPermission ()
BEGIN DECLARE userPermId VARCHAR (32);
DECLARE accountId VARCHAR (32);
DECLARE permissionId VARCHAR (32);
DECLARE _done INT DEFAULT 0;
DECLARE _Cur CURSOR FOR SELECT Id AS userPermId, account_id AS accountId, permission_id AS permissionId FROM idb_permission GROUP BY account_id, permission_id, `status` HAVING COUNT(*) > 1 AND `status` = "1";
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;
OPEN _Cur;
FETCH _Cur INTO userPermId, accountId, permissionId;
WHILE (_done <> 1) DO DELETE FROM idb_permission WHERE Id <> userPermId AND account_id = accountId AND permission_id = permissionId AND `status` = "1";
FETCH _Cur INTO userPermId, accountId, permissionId;
END WHILE;
CLOSE _Cur;
END;
分享到:
相关推荐
在本篇总结文档中,我们将探讨MySQL存储过程的简单应用,包括循环结构、创建临时表、删除数据、分页查询以及动态存储过程的编写。 首先,让我们了解一下什么是存储过程。存储过程是一组为了完成特定功能的SQL语句集...
1. 代码复用:存储过程可以被多次调用,减少了重复编写SQL代码的工作。 2. 提高性能:预编译的SQL语句执行更快速,减少了解析和编译的时间。 3. 安全性:通过存储过程,可以限制用户对数据库的直接访问,提高数据...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一组SQL语句并封装成一个可重复使用的对象。这个经典教程旨在深入探讨存储过程的各个方面,帮助读者掌握这一强大的数据库编程工具。 1. **存储...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预定义一组SQL语句,并将其封装成一个可重复使用的单元。这个教程将深入讲解如何在MySQL中创建、调用和管理存储过程,以及它们在实际应用中的价值。 ...
MySQL存储过程是数据库管理系统中的一个重要概念,它是一组为了完成特定功能的SQL语句集,经编译后存储在MySQL服务器中,用户可以调用这个预编译的语句集来执行任务,而不是每次需要时都重新编写相同的SQL代码。...
MySQL5存储过程是一种数据库编程技术,它允许在数据库中创建一系列复杂的SQL语句,形成一个可重复使用的逻辑单元。这极大地提高了数据库管理系统的效率和灵活性,使得开发者能够以面向过程的方式来处理数据,而不是...
存储过程中的变量和局部变量具有特定的作用域,理解变量的生命周期和作用域对于正确编写存储过程至关重要。 #### 循环结构 `LOOP`, `WHILE`, `REPEAT`等循环结构可用于处理重复任务,提高代码的灵活性和效率。 ###...
MySQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被保存和重复使用,提高了数据库的效率和可维护性。在本项目实践中,我们将深入学习和运用MySQL的存储过程,同时结合游标这一重要工具进行...
MySQL5.0存储过程是数据库管理系统MySQL中的一个重要特性,它允许开发者定义一组SQL语句,形成一个可重复使用的代码块,以实现特定的功能。在数据库系统中,存储过程可以提高性能,减少网络流量,增强安全性,并提供...
2. **代码复用**:存储过程可以封装复杂的操作,避免了重复编写相同的SQL语句。 3. **数据安全**:通过存储过程,可以限制对数据库的直接访问,降低安全隐患。 4. **减少网络流量**:存储过程的调用只需要发送一次...
2. **代码重用性:** 可以多次调用相同的存储过程,避免重复编写相同的逻辑代码。 3. **增强安全性:** 可以通过限制对存储过程的访问权限来提高系统的安全性。 4. **事务处理:** 在存储过程中可以很容易地实现复杂的...
存储过程是预编译的SQL语句集合,可在需要时重复调用,提高效率并简化复杂的操作。在MySQL中创建存储过程如下: 1. 创建存储过程:以`CREATE PROCEDURE`开头,定义参数(如果有的话),然后编写SQL语句。例如,创建...
在本例中,我们关注的是如何使用C API来调用MySQL数据库中的存储过程,以实现对数据的增、删、改、查(CRUD)操作。MySQL是一个广泛使用的开源关系型数据库管理系统,它提供了丰富的API供开发者使用。 首先,要使用...
2. **存储过程管理**:包括创建、修改、删除和调试存储过程,提供可视化的流程图来理解过程结构。 3. **数据库设计**:可视化表结构,方便进行表设计和关系建模。 4. **数据浏览和编辑**:查看和编辑数据库中的数据...
存储过程是一组预先编写的SQL语句,它允许用户像调用函数一样重复执行,提高了数据库操作的效率和安全性。 首先,理解存储过程的分类至关重要。存储过程分为系统存储过程、用户自定义存储过程和扩展存储过程。系统...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预定义一系列SQL语句,形成一个可重复调用的代码块。在本教程中,我们将深入探讨MySQL存储过程的编写规范和实际应用,帮助你更好地理解和掌握这一技术...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一组SQL语句并封装成一个可重复使用的对象。这种技术在大型企业级应用中非常常见,因为它能提高性能、减少网络通信,并且便于代码管理和维护。在...
- **代码复用**:一旦创建,可以在多处调用同一个存储过程,避免重复编写相同的逻辑。 ##### 缺点: - **跨平台性差**:不同的数据库系统之间存储过程的语法可能存在差异,迁移成本较高。 - **调试困难**:相较于...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一组SQL语句并封装成一个可重复使用的对象。在“mysql存储过程(2)”这个主题中,我们可能涉及了存储过程的进阶概念、创建与管理以及它们在实际...