咨询GCP BigQuery插入行时自动添加当前时间戳的方法
BigQuery自动插入当前时间戳的实现方式
BigQuery完全支持类似关系型数据库DEFAULT CURRENT_TIMESTAMP的内置功能,无需完全依赖应用层(如Java程序)处理时间戳生成。以下是具体实现方法:
1. 建表时定义默认时间戳列
创建表时,直接为目标列指定DEFAULT CURRENT_TIMESTAMP()约束,BigQuery会在插入新行时自动填充当前UTC时间戳:
CREATE TABLE my_dataset.my_table ( id INT64, content STRING, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP() );
如果需要特定时区的时间,可以传入时区参数,例如:
CREATE TABLE my_dataset.my_table ( id INT64, content STRING, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP("Asia/Shanghai") );
2. 插入数据时的使用方式
插入数据时无需显式提供该列的值,BigQuery会自动完成时间戳填充:
INSERT INTO my_dataset.my_table (id, content) VALUES (1, '测试内容');
若插入时显式指定了该列的值,BigQuery会优先使用传入的值,忽略默认约束。
3. 为已有表添加默认时间戳列
对于已存在的表,可通过ALTER TABLE语句新增带默认值的时间戳列:
ALTER TABLE my_dataset.my_table ADD COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP();
内容的提问来源于stack exchange,提问作者sg_rs
相关产品推荐
相关产品推荐

