2016-01-04 3 views
8

क्या टाइमस्टैम्प कॉलम के साथ एक टेबल बनाने के लिए कोई तरीका है?रेडशिफ्ट: टाइमस्टैम्प कॉलम के साथ अब एक टेबल बना रहा है()

सृजन पर निम्नलिखित में से कोई भी सफल होता है लेकिन सम्मिलन में विफल रहता है।

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. 

मैं अन्य जायके के रूप में नीचे की कोशिश की लेकिन सभी असफल।

क) एकल उद्धरण में 'अब' अब के साथ की कोशिश की, बनाने सफल रहा लेकिन बनाने के सफल समय क्षेत्र के बिना की कोशिश की एक और त्रुटि

ख), के साथ विफल, सम्मिलित विफल रहा है।

उत्तर

17

आप वर्तमान टाइमस्टैम्प मान लगाने के लिए SYSDATE या GETDATE() का उपयोग कर सकते हैं। यहाँ एक उदाहरण है।

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

ठीक वही है जो मैंने किया था। –

+1

क्या आपने DEFAULT GETDATE() की कोशिश की है? – pcothenet

+0

हां, 'डिफॉल्ट गेटेट()' भी काम करता है। –

संबंधित मुद्दे