2017-08-15 3 views
1

Je cherche à créer la table à partir d'une table quelque chose comme:créer table avec date système Vertica

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

Vous vous demandez si je peux même le faire en Vertica?

Je pensais que le stockage de la valeur dans une variable comme:

\set x 'select now();' 

create table :x (int a); 

Mais \echo :x me donne select now();.

Répondre

1

voir le code ci-dessous

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) 
  • est ce que vous cherchez?

Append timestamp Unix à un tablename:

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) 

vous pouvez également vous construire variable et l'utiliser sur la table créer

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

Je cherche à exporter le temps du système et utiliser le même temps système lorsque je crée une table. Puis-je faire ceci: \ set date '$ var' où var est la variable d'environnement qui stocke la date du système? J'ai essayé mais ça ne marche pas. – Himan

+0

Donc, vous voulez créer une table basée sur la valeur var "externe"? –

+0

oui c'est correct – Himan