在Vertica中创建具有系统日期的表

时间:2017-08-15 01:09:03

标签: sql vertica

我希望从表中创建表格,如:

CREATE TABLE as archive.POSTPAID_GSMIS_`date +%Y%m%d%H%M%S` 
(
select * from 
POSTPAID.STAGE_GS10);
commit;

想知道我是否能在Vertica中做到这一点?

我想过将值存储在一个变量中:

\set x 'select now();'

create table :x (int a);

\echo :x给了我select now();

1 个答案:

答案 0 :(得分:1)

见下面的代码

dbadmin=> \set date `date +%Y%m%d%H%M%S`

dbadmin=> \echo :date
20170815112242
 CREATE TABLE dba.POSTPAID_GSMIS_:date
 as
select '1234' as id from dual
;
CREATE TABLE
dbadmin=> select * from dba.POSTPAID_GSMIS_:date;
  id
------
 1234
(1 row)
  • 这是你要找的?

将Unix时间戳附加到表名:

dbadmin=> \set env `date +%s`
dbadmin=> \echo :env
1502843933

dbadmin=> create table dba.tbl_:env (id int);
CREATE TABLE

dbadmin=> select * from dba.tbl_1502843933;
 id
----
(0 rows)

您也可以构建变量并在表创建

上使用它
dbadmin=> \set var `var="blabla" && echo $var`
dbadmin=> \echo :var
blabla
dbadmin=>  create table dba.tbl_:var (id int);
CREATE TABLE
dbadmin=> select * from dba.tbl_blabla;
 id
----
(0 rows)