Sql 向具有默认当前时间戳列的表大容量插入数据

Sql 向具有默认当前时间戳列的表大容量插入数据,sql,amazon-web-services,amazon-redshift,Sql,Amazon Web Services,Amazon Redshift,我有一张红移表,结构如下 CREATE TABLE schemaName.tableName ( some_id INTEGER, current_time TIMESTAMP DEFAULT GETDATE() ); 例如,如果我批量插入其他表中的数据 INSERT INTO schemaName.tableName (some_id) SELECT id FROM otherSchema.otherTable; 对于所有批量插入的行,当前_时间列的值是否相同?或者,它将取决于每个记录的插

我有一张红移表,结构如下

CREATE TABLE schemaName.tableName (
some_id INTEGER,
current_time TIMESTAMP DEFAULT GETDATE()
);
例如,如果我批量插入其他表中的数据

INSERT INTO schemaName.tableName (some_id) SELECT id FROM otherSchema.otherTable;
对于所有批量插入的行,当前_时间列的值是否相同?或者,它将取决于每个记录的插入时间。因为列数据类型是TIMESTAMP

我只考虑亚马逊红移

到目前为止,我已经测试过将current_time列的默认值更改为SYSDATE,并向目标表大容量插入10行。每行的当前_时间列值产生类似于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()
  );

行为当前时间获取不同的随机值

是。在大容量插入的情况下,红移将具有相同的默认值。该文件包含以下内容:

给定列的计算默认表达式与 所有加载的行,使用随机函数的默认表达式 将为所有行指定相同的值

这是用于复制命令的。只是使用带有批量插入的随机函数进行了测试,并不能对所有行产生相同的结果。