This question already has answers here:
CURRENT_DATE/CURDATE() not working as default DATE value
                                
                                    (6个答案)
                                
                        
                                5年前关闭。
            
                    
我需要一个DATE列以默认为当前时间戳

我需要像2014-11-27

CHANGE COLUMN `date` `date` DATE NULL DEFAULT TODAY()


mysql不接受以上内容,因为TODAY()是未知的。 DATE(),DATE,CURDATE()和CURDATE也无效

最佳答案

在这种情况下,您需要使用TRIGGER,DEFAULT子句只能处理常量值:

DELIMITER //
CREATE TRIGGER today BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.`date` IS NULL THEN
    SET NEW.`date` = NOW();
  END IF;
END;
//
DELIMITER ;

关于mysql - 如何将DATE列默认为今天的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27172235/

10-16 14:46