2017-08-15 49 views
1

創建具有系統日期表,我希望從一個表像創建表:在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

參見下文

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) 
+0

我期待出口系統時間和創建表格時使用相同的系統時間。我可以這樣做:\ set date'$ var' var是存儲系統日期的環境變量嗎?我嘗試過,但不起作用。 – Himan

+0

所以你想創建基於「外部」var值的表? –

+0

是的,這是正確的 – Himan