如何在mysql中更改列以设置默认的当前时间戳

llew8vvj  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(386)

这个问题在这里已经有答案了

创建日期类型的表,并将其默认值用作mysql上的当前日期(2个答案)
10个月前关门了。
稍后我创建了一个表,我想为列添加一个默认值作为当前的\u时间戳

CREATE TABLE `orders` (
  `order_id` int(11) NOT NULL,
  `order_user_id` int(11) DEFAULT NULL,
  `order_date` date DEFAULT NULL,  -- this column...
  `order_status` varchar(25) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我的另一个问题是

ALTER TABLE `orders` CHANGE `order_date` `order_date` DATE NOT NULL DEFAULT CURRENT_TIMESTAMP;

我犯了这样的错误

Query error:

# 1067 - Invalid default value for 'order_date'
tp5buhyn

tp5buhyn1#

您的列必须是 DATETIME 或者 TIMESTAMP . 文件。除了不想更改列类型之外,还可以编写insert/update触发器。

brqmpdu1

brqmpdu12#

请使用以下语法:

ALTER TABLE `table` 
    MODIFY column_1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;

你的陈述如下:,

ALTER TABLE `orders` 
    MODIFY `order_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

相关问题