首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql删除满足自己某个条件的表

问题描述: 自循环删除,大概意思就是删除一个表里的部分数据,这些数据所满足的条件也在自己表里 ,我有点儿晕,直接上代码,这是select出来的,正常流程,如果要删除直接改成delete from …就行了...FROM 表名 WHERE 统计日期 IN( SELECT DISTINCT 统计日期 FROM 表名 WHERE 字段1='data1') AND 字段1 'data1' 真改完了后就是这种 错误代码...: 1093 You can't specify target table '表名' for update in FROM clause 其实仔细想想逻辑还是有问题的,循环用了同一张表,会形成类似于死循环的操作...,虽然我们明白这样好像没什么问题,但是电脑和你不一样, mysql在把子查询结果作为删除表中数据的条件,而mysql不允许在子查询的同时删除原表数据 解决办法: 方法一、分步骤: 先创建临时表 create...* FROM tmp) AND 字段1 'data1' 最后删除临时表 drop table tmp 方法二直接删除 链接:https://blog.csdn.net/jaryle/article

2.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何正确的使用一条SQL删除重复数据

    数据库中表存在重复数据,需要清理重复数据,清理后保留其中一条的情况是比较常见的需求,如何通过1条SQL准确的删除数据呢? 1....如何删除重复数据 2.1 方案一 很多研发同学习惯的思路如下: 先查出重复的记录(使用in) 再查出在重复记录但id不在每组id最大值的记录 直接将select 改为delete进行删除 查询SQL...COUNT(*)>1 ) AND id NOT IN ( SELECT MAX(id) FROM test GROUP BY c1,c2 HAVING COUNT(*)>1) 出现报错信息: 错误代码...:1093 You can't specify target table 'test' for update in FROM clause 也就是说MySQL里需删除的目标表在in子查询中时,不能直接执行删除操作...共 7 行受到影响 删除后数据如下: 无重复数据了。

    1.8K20

    MySQL:基于Spring监听Binlog日志

    执行时间 (executionTime): 执行时间为 0,表示执行这个查询所花费的时间。 错误代码 (errorCode): 错误代码为 0,表示查询执行没有错误。...执行时间 (executionTime): 执行时间为 0,表示执行这个查询所花费的时间。 错误代码 (errorCode): 错误代码为 0,表示查询执行没有错误。...执行时间 (executionTime): 执行时间为 0,表示执行这个查询所花费的时间。 错误代码 (errorCode): 错误代码为 0,表示查询执行没有错误。...执行时间 (executionTime): 执行时间为 0,表示执行这个查询所花费的时间。 错误代码 (errorCode): 错误代码为 0,表示查询执行没有错误。...执行时间 (executionTime): 执行时间为 0,表示执行这个查询所花费的时间。 错误代码 (errorCode): 错误代码为 0,表示查询执行没有错误。

    1.6K62

    mysql数据库报错1146_数据库错误代码1146 – 本地与在线

    我是这个站点的新手 – 请温和请:P localhost上的mySQL数据库适用于插入语句,但只要将数据库连接更改为服务器连接它给了我错误:错误代码1146:1146没有任何错误描述。...数据库错误代码1146 – 本地与在线 :::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::...“Error code ” . mysql_errno() . “: ” . mysql_error() . “ \n”; $errors++; } else { $DBName = “nokeekwe...“Error code ” . mysql_errno($DBConnect) . “: ” . mysql_error($DBConnect) . “ \n”; $errors++; } } } if...这将是非常有用 – +0 首先,请删除mysql_ *并使用mysqli或PDO代替mysql_ *不再被维护,第二次尝试在mysql_connect和mysql_delect_db之前删除@并且还将’

    2.3K30

    【重学 MySQL】八十、掌握定义条件与处理程序,让数据库管理更高效!

    MYSQL_ERROR_CODE 是一个 MySQL 错误代码(例如 1062)。 value 是具体的 SQLSTATE 或 MySQL 错误代码值。...MYSQL_error_code 定义:MYSQL_error_code 是MySQL数据库特有的错误代码,每个代码都对应一个特定的错误类型或情况。...1008:数据库不存在,删除数据库失败。 1009:不能删除数据库文件导致删除数据库失败。 1010:不能删除数据目录导致删除数据库失败。 1012:不能读取系统表中的记录。...方法2:捕获MySQL错误代码 DECLARE CONTINUE HANDLER FOR 1146 SET @info = 'NO_SUCH_TABLE'; 与方法1类似,但这里使用的是MySQL特定的错误代码...注意,在MySQL中,你可以直接使用错误代码而不需要前缀MYSQL_ERROR_CODE。

    13410

    5.错误处理在存储过程中的重要性(510)

    日志记录:记录程序运行时的关键信息,以便在发生错误时进行分析。 监控:实时监控应用程序的运行状态,以便快速检测到异常。 纠正性策略: 自动回滚:在事务中,如果检测到错误,则自动回滚所有更改。...condition_value:定义触发handler的条件,可以是: MySQL错误代码:如1062(唯一性约束违反)。 SQLSTATE值:如45000(一般错误)。...具体错误代码: 捕获特定错误代码的异常。 例如,1062是MySQL中表示重复键错误(Duplicate entry)的错误代码。...condition_value:触发条件的具体错误代码或SQLSTATE值。 示例 假设你有一个存储过程,需要在尝试访问一个不存在的表时进行处理。...SELECT * FROM abc; END // DELIMITER ; 在这个例子中: 1051:是MySQL中表示“table not found”(表未找到)的错误代码。

    9810

    MySQL导入sql报错Specified key was too long问题解决

    错误代码 1071 通常是因为在恢复数据时,数据库引擎试图创建一个键,但是该键的长度超过了数据库引擎所允许的最大长度(1000 字节)。 解决方法 要解决这个问题,你可以考虑以下几个方案: 1....你可以通过减少键的长度、使用更短的字段类型或者删除一些索引来实现。 2. 修改数据库配置: 如果你有权限修改数据库配置,可以尝试修改数据库引擎的配置参数,以允许更长的键长度。...使用特定的存储引擎: 不同的存储引擎对键的长度限制可能不同,你可以尝试使用另一个存储引擎,看看是否能够解决问题。...如果你的表使用 utf8mb4 字符集,并且你尝试创建一个索引,其长度超过了 1000 字节的限制,就会出现这个错误。 修改数据库配置 通过修改 MySQL 的配置来解决这个问题。...可以通过以下步骤来修改 MySQL 配置: 找到 MySQL 的配置文件,通常是 my.cnf 或者 my.ini,具体位置可能因安装方式而异。

    58710

    MySQL导入sql报错Specified key was too long问题解决

    错误代码 1071 通常是因为在恢复数据时,数据库引擎试图创建一个键,但是该键的长度超过了数据库引擎所允许的最大长度(1000 字节)。 解决方法 要解决这个问题,你可以考虑以下几个方案: 1....你可以通过减少键的长度、使用更短的字段类型或者删除一些索引来实现。 2. 修改数据库配置: 如果你有权限修改数据库配置,可以尝试修改数据库引擎的配置参数,以允许更长的键长度。...使用特定的存储引擎: 不同的存储引擎对键的长度限制可能不同,你可以尝试使用另一个存储引擎,看看是否能够解决问题。...如果你的表使用 utf8mb4 字符集,并且你尝试创建一个索引,其长度超过了 1000 字节的限制,就会出现这个错误。 修改数据库配置 通过修改 MySQL 的配置来解决这个问题。...可以通过以下步骤来修改 MySQL 配置: 找到 MySQL 的配置文件,通常是 my.cnf 或者 my.ini,具体位置可能因安装方式而异。

    1.6K10

    MySQL8 中文参考(二十)

    运行时日志控制 与日志表和文件相关的系统变量使得可以在运行时控制日志记录: log_output变量指示当前的日志输出目的地。可以在运行时修改以更改目的地。...它不会将组件添加到mysql.component表中,也不会从mysql.component表中删除以前使用INSTALL COMPONENT安装的组件。...10000 及以上:服务器错误代码,意在写入错误日志(不发送给客户端)。 此外,指定的每个错误代码必须实际被 MySQL 使用。...尝试指定不在允许范围内或在允许范围内但未被 MySQL 使用的代码会产生错误,并且log_error_suppression_list的值保持不变。...当线程结束时,临时文件将被删除。从 MySQL 8.0.17 开始,如果服务器上启用了二进制日志加密,则临时文件将被加密。

    17910
    领券