gpt4 book ai didi

mysql - CURDATE() 导致语法错误

转载 作者:可可西里 更新时间:2023-11-01 07:01:39 24 4
gpt4 key购买 nike

大家

我想添加一列 start_date,其默认值为当前日期(),所以我使用以下命令:

改变表验证添加列 start_date 日期默认 CURDATE()

但它没有用,并告诉我它有语法错误。

虽然使用以下命令效果很好:

alter table validation add column start_date date default 0

如有任何建议,我们将不胜感激。

最佳答案

来自online documentation (我的粗体):

The DEFAULT value clause in a data type specification indicates a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression.

This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE.

The exception is that you can specify CURRENT_TIMESTAMP as the default for a TIMESTAMP column.

这就是为什么 default 0 有效(常量)但 default curdate() 无效(函数)的原因。

您(至少)有几种可能性来解决这个问题。

第一种是使用时间戳列代替日期列,并将其默认设置为 CURRENT_TIMESTAMP。不幸的是,这意味着您必须在提取日期时将其转回日期。

第二种是使用触发器来设置列值,而不是从默认值开始。例如,使用插入触发器将相关列设置为当前日期。

关于mysql - CURDATE() 导致语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802857/

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