在 Vertica 中使用系统日期创建 table
create table with system date in Vertica
我希望从 table 中创建 table,例如:
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();
。
查看下面的代码
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 时间戳附加到 table名称:
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)
您也可以构建变量并在 table create
上使用它
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)
我希望从 table 中创建 table,例如:
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();
。
查看下面的代码
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 时间戳附加到 table名称:
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)
您也可以构建变量并在 table create
上使用它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)