MySQL warnings are an anti-pattern when it comes to maintaining
data integrity. When the information retrieved from a database
does not match what was entered, and this is not identified
immediately, this can be permanently lost.
MySQL by default for several decades until the most recent
versions enabled you to insert incorrect data, or insert data
that was then truncated, or other patterns that resulted in
failed data integrity. Very few applications considered handling
warnings as errors, and there is a generation of software
products that have never informed the developers that warnings
were occurring.
The most simplest example is:
CREATE SCHEMA IF NOT EXISTS warnings;
USE warnings;
CREATE TABLE short_name(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
PRIMARY KEY(id)
);
INSERT INTO short_name (name) VALUES ('This name is too long and will get truncated');
ERROR 1406 (22001): Data too long for …[Read more]