Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sửa mã lỗi MySQL 8:1525 và 1292?

Điều tồi tệ hơn là có thể thay đổi chế độ SQL toàn phiên cho cả tập lệnh di chuyển và ứng dụng bị ảnh hưởng — đó chỉ là một thay đổi đơn giản một lần (miễn là mã kết nối không được sao chép + dán vào hàng trăm vị trí). Chế độ cho phép ngày không hợp lệ là ALLOW_INVALID_DATES :

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

Toàn bộ bản trình diễn :

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. SQLSTATE [23000]:Vi phạm ràng buộc toàn vẹn với ràng buộc hợp lệ

  2. Chọn các kết hợp riêng biệt từ hai cột

  3. Tham chiếu đối tượng, c #

  4. Dữ liệu MySql bị cắt ngắn cho cột 'nâng cao' ở hàng 1

  5. REPLACE không phân biệt chữ hoa chữ thường cho MySQL