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

Không thể thay đổi bảng, nhận được lỗi 1067 Giá trị mặc định không hợp lệ

Một số thông tin cơ bản về sql_mode và 'NO_ZERO_DATE': http:// dev.mysql.com/doc/refman/5.1/en/sql-mode.html

Bạn đã đề cập rằng bạn đã khôi phục các bảng từ một máy chủ khác. Nếu bạn đã sử dụng mysqldump thì câu trả lời cho câu hỏi của bạn là mysql đã tắt chế độ 'NO_ZERO_DATE' trong khi tải SQL được kết xuất. Mysqldump (được thử nghiệm trong 5.5) đặt dòng này ở đầu SQL được kết xuất:

/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

Nó cũng tắt kiểm tra khóa ngoại và những thứ hữu ích khác trong khi tải kết xuất.

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

Điều này giải thích tại sao bạn có thể khôi phục các bảng, nhưng khi cố gắng thay đổi, bạn phải chơi theo các quy tắc chặt chẽ hơn. Nếu bạn thực sự muốn ghi đè điều này, bạn có thể thử cách sau ngay trước bảng thay thế của bạn:

mysql> SET SESSION sql_mode='';

Sau đó, thay đổi bảng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:chỉ cập nhật một trường nếu điều kiện được đáp ứng

  2. Id tài nguyên # 5:MySQL

  3. Nhóm MySQL theo ngày với datetime trộn các ngày giống nhau từ các tháng khác nhau

  4. Mac OS Sierra virtualenv (python 2.7) pip cài đặt lỗi mysqlclient

  5. MySQL Làm thế nào để có được sự khác biệt trong dấu thời gian unix