我有一个关于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'
谢谢。
答案 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
)