mysql - 在创建表时将默认值作为 Mysql 中两列的差异
问题描述
我们可以在 Mysql 服务器中创建一个表,其中一列作为其他两列之间的差异。因此,当填充这两列时,将从它们计算第三列。
CREATE TABLE LOAD(
START_TIME DATETIME,
END_TIME DATETIME,
ELAPSED_TIME DATETIME AS START_TIME-END_TIME
)
像这样的东西
解决方案
MySQL 8 确实支持生成的列。因此,要生成一个在列和elapsed_time
之间传递秒数的列,您可以使用如下:start_time
end_time
timestampdiff()
CREATE TABLE `load`
(start_time datetime,
end_time datetime,
elapsed_time integer AS (timestampdiff(SECOND, start_time, end_time)));
(注意这load
是一个保留字,因此在用作标识符时需要用反引号括起来。)
db<>fiddle