如何在BigQuery表中添加含CURRENT_DATETIME的列及自动更新日期列
SQL问题解决方案
问题1:给表tbl1添加列col1,值为当前时间
不同数据库的实现语法略有差异,以下是主流数据库的操作方式:
MySQL
先添加列并设置默认值为当前时间,再给已有行批量赋值:
-- 添加列,默认值设为当前时间戳 ALTER TABLE tbl1 ADD COLUMN col1 DATETIME DEFAULT CURRENT_TIMESTAMP; -- 给现有所有行的col1设置当前时间 UPDATE tbl1 SET col1 = CURRENT_TIMESTAMP;
PostgreSQL
添加列并设置默认值,同时更新现有行:
-- 添加带时区的时间戳列,默认值为当前时间 ALTER TABLE tbl1 ADD COLUMN col1 TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP; -- 批量更新现有行的col1值 UPDATE tbl1 SET col1 = CURRENT_TIMESTAMP;
问题2:创建DATE类型列,仅在新数据写入时自动记录时间
这个需求是要记录数据的创建日期,仅在插入新行时自动填充,后续更新该行不会改变该列值,实现方式如下:
MySQL
ALTER TABLE tbl1 ADD COLUMN create_date DATE DEFAULT CURRENT_DATE;
插入新数据时,若不手动指定create_date,会自动填充当前日期;后续更新该行时,除非手动修改,否则该值保持不变。
PostgreSQL
ALTER TABLE tbl1 ADD COLUMN create_date DATE DEFAULT CURRENT_DATE;
插入新行时自动取当前日期,更新操作不会影响该列的值,只有手动修改才会变更。
内容的提问来源于stack exchange,提问作者Ayush331
相关产品推荐
相关产品推荐

