有没有办法创建一个表,其中的字段默认为当前日期值而不是时间戳?
CREATE TABLE animal (
animal_id INT AUTO_INCREMENT PRIMARY KEY,
animal_name VARCHAR(50) NOT NULL,
animal_type VARCHAR(50) NOT NULL,
species VARCHAR(50) NOT NULL,
gender VARCHAR(10),
entry_date DATE DEFAULT CURRENT_DATE,
status VARCHAR(10) DEFAULT 'present' NOT NULL
);
我尝试使用 CURRENT_DATE 但出现此错误: #1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在“CURRENT_DATE”附近使用的正确语法 状态 VARCHAR(10) DEFAULT 'present' NOT NULL )' 在第 7 行
当前版本的 mysql 允许任意自包含表达式,但必须将它们括在括号中:
DEFAULT (CURRENT_DATE)
也就是说,CURRENT_DATE 是当前会话时区的日期,因此不同的会话可能使用不同的默认值。我建议永远不要使用任何依赖于会话时区(现在、当前日期等)的函数。如果您希望该字段默认为某个特定时区的当前日期,请明确说明,其方式可能因会话而异。例如。美国太平洋时间:
DEFAULT (convert_tz(utc_timestamp,'+00:00','America/Los_Angeles'))