2016-01-04 17 views
8

Şu an varsayılan zaman damgası sütununa sahip bir tablo oluşturmanın bir yolu var mı?Redshift: Şimdi Zaman damgası sütununa sahip bir tablo oluşturma Now()

Aşağıdakilerden biri, oluşturma işleminde başarılı olur, ancak ekleme işleminde başarısız olur. uç üzerindeki Sonra

CREATE TABLE MyTable 
(
device_id   VARCHAR(64) NOT NULL encode lzo, 
app_id   VARCHAR(150) NOT NULL distkey encode lzo, 
retrieval_date TIMESTAMP without time zone default (now() at time zone 'utc') encode lzo 
) 
diststyle key 
compound sortkey(app_id,device_id); 

:

 insert into MyTable (device_id,app_id) values('a','b'); 
INFO: Function "timezone(text,timestamp with time zone)" not supported. 
INFO: Function "now()" not supported. 
ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables. 

Ben aşağıda diğer tatlar denedik ama hepsi başarısız oldu. 'Şimdi' tek tırnak şimdi ile çalıştı

a) başarılı oldu, ancak başarılı oluşturun saat dilimi olmadan çalıştı başka hata

b) ile başarısız oluşturun, insert başarısız oldu.

cevap

17

Geçerli bir zaman damgası değeri koymak için SYSDATE veya GETDATE() kullanabilirsiniz. İşte bir örnek.

dev=> create table my_table (id int, created_at datetime default sysdate); 
CREATE TABLE 

dev=> insert into my_table (id) values (1); 
INSERT 0 1 

dev=> select * from my_table; 
id |  created_at 
----+--------------------------- 
    1 | 2016-01-04 19:07:14.18745 
(1 row) 
+0

Doğru, yaptığım buydu. –

+1

DEFAULT GETDATE() yöntemini denediniz mi? – pcothenet

+0

Evet, 'DEFAULT GETDATE()' de çalışır. –

İlgili konular