Transferí un sitio web de WordPress desde un plan de alojamiento compartido usando Plesk a un servidor VPS con una versión más nueva de Plesk. Al intentar cargar la base de datos MYSQL, recibo el siguiente error:
Consulta SQL de error: Copiar
CREATE TABLE `XZu2B8_wc_reserved_stock` ( `order_id` bigint(20) NOT NULL, `product_id` bigint(20) NOT NULL, `stock_quantity` double NOT NULL DEFAULT 0, `timestamp` datetime NOT NULL DEFAULT current_timestamp(), `expires` datetime NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (`order_id`,`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ciMySQL dijo: Documentación
#1067 - Valor predeterminado no válido para 'marca de tiempo'
¿Alguien tiene alguna idea de cómo arreglar eso?
Esto se introdujo solo en mysql 5.6
Para mysql 5.5, necesita el siguiente disparador y debe eliminar los valores PREDETERMINADOS PRIMERO para crear la tabla:
CREATE TABLE `XZu2B8_wc_reserved_stock` ( `order_id` bigint(20) NOT NULL, `product_id` bigint(20) NOT NULL, `stock_quantity` double NOT NULL DEFAULT 0, `timestamp` datetime NOT NULL, `expires` datetime NOT NULL , PRIMARY KEY (`order_id`,`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ciLuego crea el disparador
DELIMITER $$ CREATE TRIGGER before_insert_XZu2B8_wc_reserved_stock BEFORE INSERT ON XZu2B8_wc_reserved_stock FOR EACH ROW BEGIN IF NEW.`timestamp` IS NULL THEN SET NEW.`timestamp`= NOW(); END IF; IF NEW.`expires` IS NULL THEN SET NEW.`expires`= NOW(); END IF; END$$ DELIMITER ;