Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak naprawić kody błędów MySQL 8:1525 i 1292?

Mniejszym złem jest prawdopodobnie zmiana trybu SQL obejmującego całą sesję zarówno dla skryptu migracji, jak i aplikacji, której dotyczy problem — powinna to być prosta jednorazowa zmiana (o ile kod połączenia nie jest kopiowany i wklejany w stu miejscach). Tryb, który dopuszcza nieprawidłowe daty, to ALLOW_INVALID_DATES :

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

Pełne 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać ostatni rekord z tabeli MySQL przy użyciu składni SQL, jeśli spełniony jest tylko warunek?

  2. Nie widać wierszy wstawionych przez uruchomioną transakcję, gdy poziom izolacji to READ_UNCOMMITTED

  3. policz liczbę zmiennych Null w wierszu mysql

  4. Zapytanie SQL, aby sprawdzić typ produktu w WooCommerce

  5. Erlang mysql przykład