错误'updated_at'phpmyAdmin的默认值无效

时间:2019-02-24 13:45:01

标签: php phpmyadmin

我有一个关于phpMyAdmin的问题,我正在尝试创建下表,但始终出现此错误,有人知道这是哪里来的吗?

我要创建的表:

CREATE TABLE products(
pid int(11) primary key auto_increment,
name varchar(100) not null,
price decimal(10,2) not null,
description text,
created_at timestamp default now(),
updated_at timestamp
);

错误:

SQL query:


CREATE TABLE products(
pid int(11) primary key auto_increment,
name varchar(100) not null,
price decimal(10,2) not null,
description text,
created_at timestamp default now(),
updated_at timestamp
)
MySQL said: Documentation

#1067 - Invalid default value for 'updated_at'

谢谢。

1 个答案:

答案 0 :(得分:1)

您应该使用CURRENT_TIMESTAMP

而不是NOW()
CREATE TABLE products(
pid int(11) primary key auto_increment,
name varchar(100) not null,
price decimal(10,2) not null,
description text,
created_at timestamp DEFAULT CURRENT_TIMESTAMP,
updated_at timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

此外,您应该为NOT NULL约束设置默认值,因此最终的创建脚本应如下所示:

CREATE TABLE products (
    pid INT(11) PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) DEFAULT '' NOT NULL,
    price DECIMAL(10 , 2 ) DEFAULT 0 NOT NULL,
    description TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)