我有一张关于红移的表格,其中包含以下结构
CREATE TABLE schemaName.tableName (
some_id INTEGER,
current_time TIMESTAMP DEFAULT GETDATE()
);
如果我从其他表中批量插入数据,例如
INSERT INTO schemaName.tableName (some_id) SELECT id FROM otherSchema.otherTable;
对于所有批量插入的行,current_time
列的值是否相同?或者它取决于每条记录的插入时间。由于列数据类型为TIMESTAMP
我只考虑使用Amazon Redshift。
到目前为止,我已经测试过将current_time
列的默认值更改为SYSDATE
并将10行批量插入目标表。每行current_time
列值会产生2016-11-16 06:38:52.339208
之类的结果,并且每行都相同,其中GETDATE()
会产生2016-11-16 06:43:56
之类的结果。我没有找到任何有关此问题的文件,需要对此进行确认。
确切地说,在执行以下语句
之后,所有行都获得相同的时间戳值INSERT INTO schemaName.tableName (some_id) SELECT id FROM otherSchema.otherTable;
但是,如果我将表格结构更改为以下
CREATE TABLE schemaName.tableName (
some_id INTEGER,
current_time DOUBLE PRECISION DEFAULT RANDOM()
);
行为current_time
答案 0 :(得分:-1)
是。在批量插入的情况下,Redshift将具有相同的默认值。 RedshiftDocumentation具有以下内容:
给定列的已评估DEFAULT表达式是相同的 所有已加载的行,一个使用RANDOM()函数的DEFAULT表达式 将为所有行分配相同的值。