我想询问是否可以创建一个MySQL表,只要插入新行,该表就会自动填充时间列。我已经通过各种关于TIMESTAMPS的网站和仅从DATETIME选择时间的方法进行了研究,但是没有运气,我无法找到我需要的东西。我正在使用Workbench。
这是我的表格查询
create table dev_monitor(
device_id varchar(50),
power_coms float,
date DATE,
time TIME);
我使用了一个自动填充日期的触发器。
CREATE TRIGGER task_creation_timestamp BEFORE INSERT ON dev_monitor
FOR EACH ROW
SET NEW.date = NOW();
但是现在我离开了TIME专栏。
这是我将要使用的查询。
insert into dev_monitor(device_id, power_coms)
values('aircond2', '3.5');
请注意,我只想插入设备ID和功耗,每当我插入这两个数据时,我都试图让表自动填充日期和时间,但是在单独的列中。
答案 0 :(得分:1)
如此帖How do you set a default value for a MySQL Datetime column?所示,您可以使用时间戳。我不知道是否可以只填写时间,但如果您不需要DATE信息,您只能稍后选择时间或在其上创建一个View。
e.g。 CREATE VIEW v1 AS SELECT *, TIME(yourDateTime) AS time FROM yourTable;
答案 1 :(得分:1)
鲁本。您可以尝试以下代码。
DELIMITER ;;
CREATE TRIGGER device
BEFORE INSERT ON device
FOR EACH ROW
BEGIN
IF new.date IS NULL THEN
SET NEW.date = CURDATE();
SET NEW.time = CURTIME();
END IF;
END
;;
您可以在此链接中进一步参考。 Refer
答案 2 :(得分:0)
您可以编辑表的结构并将列'date'和'time'组合到单个列中,并使用数据类型'DATETIME'并将默认值设置为'NOW()'或CURRENT_TIMESTAMP()