一尘不染

mysql上INSERT语句中的计算列

sql

假设我想要一个表来记录其他表中的日期和列数(或者实际上是任何种类的数学/字符串concat等)。

CREATE TABLE `log` (
`id` INTEGER NOT NULL AUTO_INCREMENT ,
`date` DATETIME NOT NULL ,
`count` INTEGER NOT NULL ,
PRIMARY KEY (`id`)
);

每当执行插入操作时,是否可以为我计算计数列?

例如做类似的事情:

INSERT INTO log (date='foo');

并具有由mysql计算的计数。

显然,我可以自己做一个查询来获取计数并插入计数,但是这样做会更好。


阅读 189

收藏
2021-03-08

共1个答案

一尘不染

当通过插入,更新或删除表来更改数据时,触发器是注释数据的最佳工具。

要使用当前日期自动将日志中新行的日期列设置为当前日期,您将创建一个看起来像这样的触发器:

create trigger log_date before insert on log 
for each row begin
   set new.date = current_date()
end;
2021-03-08