gpt4 book ai didi

php - mysql #1067 - 'created_at' 的默认值无效

转载 作者:行者123 更新时间:2023-11-29 01:49:55 25 4
gpt4 key购买 nike

我正在学习一个在线类(class),其中包括创建 Wordpress 插件。当我尝试按照说明(并使用提供的代码排除我这边的任何错误)创建自定义表时出现问题。这是原始代码的一部分:

    $sql = "CREATE TABLE {$wpdb->prefix}ssp_survey_responses (
id mediumint(11) UNSIGNED NOT NULL AUTO_INCREMENT,
ip_address varchar(32) NOT NULL,
survey_id mediumint(11) UNSIGNED NOT NULL,
response_id mediumint(11) UNSIGNED NOT NULL,
created_at TIMESTAMP DEFAULT '1970-01-01 00:00:00',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE INDEX ix (ip_address,survey_id)
) $charset_collate;";

我尝试在MySQL数据库中直接插入SQL,清理代码:

CREATE TABLE ssp_survey_responses (
id mediumint(11) UNSIGNED NOT NULL AUTO_INCREMENT,
ip_address varchar(32) NOT NULL,
survey_id mediumint(11) UNSIGNED NOT NULL,
response_id mediumint(11) UNSIGNED NOT NULL,
created_at TIMESTAMP DEFAULT '1970-01-01 00:00:01',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE INDEX ix (ip_address,survey_id)
)

MySQL 给出了这个错误

#1067 - Invalid default value for 'created_at'

MySQL(意大利语)的本地设置可能会造成任何问题吗?MySQL 版本是::5.7.21-0ubuntu0.16.04.1 - (Ubuntu)。PHP 版本 7.0.22。WordPress 版本:4.9.2。谢谢。

最佳答案

时间戳是自 1970 年 1 月 1 日以来的秒数。这意味着这实际上是一个整数,而不是字符串。如果您希望默认值为该点 (1970-01-01 00:00),请将其指定为 DEFAULT 0。不能将字符串传递到时间戳中。

CREATE TABLE ssp_survey_responses (
id mediumint(11) UNSIGNED NOT NULL AUTO_INCREMENT,
ip_address varchar(32) NOT NULL,
survey_id mediumint(11) UNSIGNED NOT NULL,
response_id mediumint(11) UNSIGNED NOT NULL,
created_at TIMESTAMP DEFAULT 0,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE INDEX ix (ip_address,survey_id)
)

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

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