如果我创建一个带有假定为存在的实体的表,DATE并且当我Insert将该列留空时,它是否不显示当前日期?时间一样吗?
DATE
Insert
例如…
CREATE TABLE Register ( Name CHAR(20) NOT NULL, Date DATE, Time TIME );
然后我插入:
INSERT INTO Register (Name) VALUES ('Howard');
我希望它显示在桌子上:
Howard | 5/6/2014 | 8:30 PM
但是,它显示:
Howard | NULL | NULL
这是不正确的Insert吗?如果可以的话,我应该怎么做才能显示当前的插入日期和时间?
首先 ,您PRIMARY KEY的表中应该有一个。
PRIMARY KEY
其次 ,您尚未设置列Date和的默认值Time。此外,您不能为DATE和TIME类型分别设置它们- 您应该使用TIMESTAMPtype和DEFAULT CURRENT_TIMESTAMPlike:
Date
Time
TIME
TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
CREATE TABLE Register ( Name CHAR(20) PRIMARY KEY NOT NULL, Date TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
第三 ,如果要使用两列来存储日期,则可以INSERT为此表设置事件触发,如下所示:
INSERT
CREATE TRIGGER default_date_time BEFORE INSERT ON my_table_name FOR EACH ROW BEGIN SET NEW.Date = CURDATE(); SET NEW.Time = CURTIME(); END; $$