Fix lỗi “#1067 – Invalid default value for ‘post_date'” trên WordPress


Khi các bạn can thiệp chỉnh sửa trên bảng CSDL của WordPress. WordPress chạy MySQL Server, mình gặp 1 lỗi khi thực hiện câu lệnh Alter đó là:

Error Code: 1067. Invalid default value for ‘post_date’

Nguyên nhân là do sql_mode của MySQL Server đang được thiết lập là:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Bạn có thể kiểm tra lại sql_mode của bạn bằng câu lệnh sql sau:

SELECT @@sql_mode;

Trong các mode được thiết lập ở phía trên có 2 mode là NO_ZERO_IN_DATE,NO_ZERO_DATE là 2 mode ngăn cản bạn thực hiện lệnh Alter vì nó không cho phép giá mặc định mà WordPress đang thiết lập cho cột “post_date” là “0000-00-00 00:00:00”

Vì vậy chúng ta cần set lại sql_mode khi thực hiện câu lệnh alter như sau:

SET SQL_MODE = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
ALTER TABLE `wp_posts` 
ADD COLUMN `is_featured` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `comment_count`

Nó sẽ update thành công field “is_featured” vào CSDL của chúng ta.

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web