gpt4 book ai didi

mysql - #1067 - 'timestamp' 的默认值无效

转载 作者:行者123 更新时间:2023-12-05 03:50:44 33 4
gpt4 key购买 nike

我将一个 WordPress 网站从使用 Plesk 的共享托管计划转移到具有较新 Plesk 版本的 VPS 服务器。尝试上传 MYSQL 数据库时出现以下错误:

错误SQL查询:复制

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_ci

MySQL 说:文档

#1067 - Invalid default value for 'timestamp'

有人知道如何解决这个问题吗?

最佳答案

这只在 mysql 5.6 中引入

对于 mysql 5.5 你需要跟随触发器并且你需要删除默认值首先创建表:

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_ci

然后创建触发器

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 ;

关于mysql - #1067 - 'timestamp' 的默认值无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63366451/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com