`
杰wang
  • 浏览: 13985 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL编写存储过程删除重复数据

阅读更多
之前在开发过程中,利用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存储过程简单应用编写

    在本篇总结文档中,我们将探讨MySQL存储过程的简单应用,包括循环结构、创建临时表、删除数据、分页查询以及动态存储过程的编写。 首先,让我们了解一下什么是存储过程。存储过程是一组为了完成特定功能的SQL语句集...

    MySQL 存储过程入门到精通

    1. 代码复用:存储过程可以被多次调用,减少了重复编写SQL代码的工作。 2. 提高性能:预编译的SQL语句执行更快速,减少了解析和编译的时间。 3. 安全性:通过存储过程,可以限制用户对数据库的直接访问,提高数据...

    MySQL存储过程经典教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一组SQL语句并封装成一个可重复使用的对象。这个经典教程旨在深入探讨存储过程的各个方面,帮助读者掌握这一强大的数据库编程工具。 1. **存储...

    MYSQL存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预定义一组SQL语句,并将其封装成一个可重复使用的单元。这个教程将深入讲解如何在MySQL中创建、调用和管理存储过程,以及它们在实际应用中的价值。 ...

    MySQL存储过程系统学习资料

    MySQL存储过程是数据库管理系统中的一个重要概念,它是一组为了完成特定功能的SQL语句集,经编译后存储在MySQL服务器中,用户可以调用这个预编译的语句集来执行任务,而不是每次需要时都重新编写相同的SQL代码。...

    MySQL5存储过程

    MySQL5存储过程是一种数据库编程技术,它允许在数据库中创建一系列复杂的SQL语句,形成一个可重复使用的逻辑单元。这极大地提高了数据库管理系统的效率和灵活性,使得开发者能够以面向过程的方式来处理数据,而不是...

    mysql存储过程_游标_项目练习

    MySQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被保存和重复使用,提高了数据库的效率和可维护性。在本项目实践中,我们将深入学习和运用MySQL的存储过程,同时结合游标这一重要工具进行...

    MySQL5.0存储过程

    MySQL5.0存储过程是数据库管理系统MySQL中的一个重要特性,它允许开发者定义一组SQL语句,形成一个可重复使用的代码块,以实现特定的功能。在数据库系统中,存储过程可以提高性能,减少网络流量,增强安全性,并提供...

    MySQL 5.0存储过程

    2. **代码复用**:存储过程可以封装复杂的操作,避免了重复编写相同的SQL语句。 3. **数据安全**:通过存储过程,可以限制对数据库的直接访问,降低安全隐患。 4. **减少网络流量**:存储过程的调用只需要发送一次...

    精通MySQL存储过程和函数

    2. **代码重用性:** 可以多次调用相同的存储过程,避免重复编写相同的逻辑代码。 3. **增强安全性:** 可以通过限制对存储过程的访问权限来提高系统的安全性。 4. **事务处理:** 在存储过程中可以很容易地实现复杂的...

    c API 调用mysql存储过程完成增删改查

    在本例中,我们关注的是如何使用C API来调用MySQL数据库中的存储过程,以实现对数据的增、删、改、查(CRUD)操作。MySQL是一个广泛使用的开源关系型数据库管理系统,它提供了丰富的API供开发者使用。 首先,要使用...

    linux下mysql的操作与存储过程

    存储过程是预编译的SQL语句集合,可在需要时重复调用,提高效率并简化复杂的操作。在MySQL中创建存储过程如下: 1. 创建存储过程:以`CREATE PROCEDURE`开头,定义参数(如果有的话),然后编写SQL语句。例如,创建...

    mysql存储过程

    2. **存储过程管理**:包括创建、修改、删除和调试存储过程,提供可视化的流程图来理解过程结构。 3. **数据库设计**:可视化表结构,方便进行表设计和关系建模。 4. **数据浏览和编辑**:查看和编辑数据库中的数据...

    MySQL存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预定义一系列SQL语句,形成一个可重复调用的代码块。在本教程中,我们将深入探讨MySQL存储过程的编写规范和实际应用,帮助你更好地理解和掌握这一技术...

    实验9 存储过程的创建和使用

    存储过程是一组预先编写的SQL语句,它允许用户像调用函数一样重复执行,提高了数据库操作的效率和安全性。 首先,理解存储过程的分类至关重要。存储过程分为系统存储过程、用户自定义存储过程和扩展存储过程。系统...

    MySQL存储过程.rar

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一组SQL语句并封装成一个可重复使用的对象。这种技术在大型企业级应用中非常常见,因为它能提高性能、减少网络通信,并且便于代码管理和维护。在...

    mysql+数据库存储过程

    - **代码复用**:一旦创建,可以在多处调用同一个存储过程,避免重复编写相同的逻辑。 ##### 缺点: - **跨平台性差**:不同的数据库系统之间存储过程的语法可能存在差异,迁移成本较高。 - **调试困难**:相较于...

    mysql存储过程(2)

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一组SQL语句并封装成一个可重复使用的对象。在“mysql存储过程(2)”这个主题中,我们可能涉及了存储过程的进阶概念、创建与管理以及它们在实际...

Global site tag (gtag.js) - Google Analytics