MySQL不查询就删除数据?

标签 mysql sql database sql-delete

我有一个客户描述了他们从 Web 表单添加新数据时发生的情况。如果提交的数据与任何现有数据库条目匹配,系统将删除现有条目。

我检查了脚本,但没有看到会影响相关表的 DELETE 查询。有 UPDATE 查询,它们都不会影响数据库中指示删除或标记为已删除的字段。

如果不执行 DELETE 查询,数据是否会丢失?

按照要求,这是“创建表”语句:

CREATE TABLE `msp_zip_codes` 
(
     `zip_code` varchar(5) DEFAULT NULL,
     `city` varchar(35) DEFAULT NULL,
     `state_prefix` varchar(2) DEFAULT NULL,
     `county` varchar(45) DEFAULT NULL,
     `area_code` varchar(45) DEFAULT NULL,
     `CityType` varchar(1) DEFAULT NULL,
     `CityAliasAbbreviation` varchar(13) DEFAULT NULL,
     `CityAliasName` varchar(35) DEFAULT NULL,
     `lat` decimal(18,6) DEFAULT NULL,
     `lon` decimal(18,6) DEFAULT NULL,
     `time_zone` varchar(7) DEFAULT NULL,
     `Elevation` int(10) DEFAULT NULL,
     `CountyFIPS` varchar(5) DEFAULT NULL,
     `DayLightSaving` varchar(1) DEFAULT NULL,
     `PreferredLastLineKey` varchar(25) DEFAULT NULL,
     `ClassificationCode` varchar(2) DEFAULT NULL,
     `MultiCounty` varchar(1) DEFAULT NULL,
     `StateFIPS` varchar(2) DEFAULT NULL,
     `CityStateKey` varchar(6) DEFAULT NULL,
     `CityAliasCode` varchar(5) DEFAULT NULL,
     `PrimaryRecord` varchar(50) DEFAULT NULL,
     `CityMixedCase` varchar(50) DEFAULT NULL,
     `CityAliasMixedCase` varchar(50) DEFAULT NULL,
     KEY `AreaCode` (`area_code`),
     KEY `CityAliasCode` (`CityAliasCode`),
     KEY `CityStateKey` (`CityStateKey`),
     KEY `ClassificationCode` (`ClassificationCode`),
     KEY `PreferredLastLineKey` (`PreferredLastLineKey`),
     KEY `ZipCode` (`zip_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

最佳答案

其中一种可能性是表有一个 UPDATE TRIGGER 集,每次有更新时都会触发。或者另一个,有一个 Event Scheduler 在服务器上运行。

显示数据库中所有触发器的代码:

SELECT * 
FROM   INFORMATION_SCHEMA.TRIGGERS a
WHERE  a.TRIGGER_SCHEMA LIKE CONCAT('%', 'databaseNameHERE', '%')

显示数据库中所有事件的代码:

SHOW EVENTS FROM databaseNameHERE;

关于MySQL不查询就删除数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14657558/

相关文章:

php - 在 Laravel 查询/子查询构建器中添加左连接

mysql - 在 IN 查询中使用文本 CSV 字段

SQL Server 使用正则表达式查询?

mysql - 非常大的表的 SQL 分区

java - 默认值取决于列类型 mysql

php - 如何显示数据库中的 BLOB 图像?

php - MySQL 检索用户结果集中用户拥有的用户数

php - 在 PHP/MySQL 中将日期时间存储为 UTC

python - 在python中执行存储过程

php - 在 where 子句中使用日期,MYSQLI