sql >> Database >  >> RDS >> Mysql

Hoe MySQL 8-foutcodes te repareren:1525 en 1292?

Het minste kwaad is mogelijk het wijzigen van de sessiebrede SQL-modus voor zowel het migratiescript als de betreffende toepassing - dat zou een simpele eenmalige wijziging moeten zijn (zolang de verbindingscode niet op honderd plaatsen wordt gekopieerd en geplakt). De modus die ongeldige datums toestaat is ALLOW_INVALID_DATES :

SET @@SESSION.sql_mode = CONCAT_WS(',', @@SESSION.sql_mode, 'ALLOW_INVALID_DATES');

Volledige demo :

mysql> CREATE TABLE foo (bar DATE);
Query OK, 0 rows affected (0.03 sec)

mysql> SELECT @@SESSION.sql_mode;
+--------------------------------------------+
| @@SESSION.sql_mode                         |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)

mysql> INSERT INTO foo (bar) VALUES ('2019-02-30');
ERROR 1292 (22007): Incorrect date value: '2019-02-30' for column 'bar' at row 1
mysql> SET @@SESSION.sql_mode = CONCAT_WS(',', @@SESSION.sql_mode, 'ALLOW_INVALID_DATES');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> INSERT INTO foo (bar) VALUES ('2019-02-30');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM foo;
+------------+
| bar        |
+------------+
| 2019-02-30 |
+------------+
1 row in set (0.00 sec)


  1. Welk OJDBC-stuurprogramma voor Java 6?

  2. Hoe ik een afbeelding op mijn server opsla en ophaal in een java-webapp

  3. PGPASSWORD-omgevingsvariabele instellen voor Postgres (psql)-proces uitgevoerd door Inno Setup

  4. Verbinding maken met mysql-container vanaf host