Mysql时间戳默认值

Nav*_*eet 4 mysql database

我是Mysql的新手.是否有可能以某种方式执行以下操作?Mysql会按预期抛出语法错误但是我应该更改哪些内容会使其工作?

CREATE TABLE tracksession(ID INT NOT NULL AUTO_INCREMENT,
             user_id INT DEFAULT NULL,
             leave_mode ENUM('loggedout', 'timedout') DEFAULT NULL,
             login TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
             logout TIMESTAMP DEFAULT ADDDATE(CURRENT_TIMESTAMP, INTERVAL 20 MINUTE),
             PRIMARY KEY(ID));
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Man*_*eUK 6

不,你不能这样做

DEFAULT ADDDATE(CURRENT_TIMESTAMP, INTERVAL 20 MINUTE),
Run Code Online (Sandbox Code Playgroud)

手册中的解释:

数据类型规范中的DEFAULT值子句指示列的默认值.除了一个例外,默认值必须是常量; 它不能是一个功能或表达.

必须是一个常数而不是一个函数......