Robbie
Robbie

Reputation: 63

MySQL delete data without query?

I have a client that is describing an occurrence when they are adding new data from a web form. If the submitted data matches any existing database entries, the system deletes the existing entry.

I've checked the scripts and I don't see a DELETE query that would affect the related table. There are UPDATE queries, none of which affect a field in the DB indicating a deletion or marked as deleted.

Are there ways data could be lost without the execution of a DELETE query?

As asked for, here's the "create table" statement:

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

Upvotes: 0

Views: 250

Answers (1)

John Woo
John Woo

Reputation: 263683

One of the possibilities is that the table has an UPDATE TRIGGER set which fires every time there's an update. Or the other one, there's an Event Scheduler running on the server.

Code to show all triggers on the database:

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

Code to show all events on the database:

SHOW EVENTS FROM databaseNameHERE;

Upvotes: 3

Related Questions