2015-10-25 11 views
8

मैं एक प्रश्न कैसे लिखूं और निष्पादित करूं जो libpqxx का उपयोग करके सरणी मानों को सम्मिलित करता है?सरणी मान डालने

INSERT INTO exampleTable(exampleArray[3]) VALUES('{1, 2, 3}'); 

इस उदाहरण कोड मुझे देता है:

ERROR: syntax error at or near "'" 

क्या गलत है? PostgreSQL दस्तावेज में मैंने पाया कि:

CREATE TABLE sal_emp (
name   text, 
pay_by_quarter integer[], 
schedule  text[][] 
); 

...

INSERT INTO sal_emp 
VALUES ('Bill', 
'{10000, 10000, 10000, 10000}', 
'{{"meeting", "lunch"}, {"training", "presentation"}}'); 
+0

'examplearray के प्रकार क्या है '? – klin

+0

@ klin यह छोटा है लेकिन इससे कोई फर्क नहीं पड़ता –

+0

बेशक यह मायने रखता है। आपकी क्वेरी टेक्स्ट एरे कॉलम पर सिंटैक्टिक रूप से सही होगी। – klin

उत्तर

5

आप एक सूचकांक के बिना एक स्तंभ नाम का उपयोग करना चाहिए एक सरणी डालने के लिए:

के साथ एक स्तंभ नाम
create table example(arr smallint[]); 
insert into example(arr) values('{1, 2, 3}'); 
select * from example; 

    arr 
--------- 
{1,2,3} 
(1 row) 

उपयोग एक तालिका के एक तत्व तक पहुंचने के लिए एक सूचकांक:

update example set arr[2] = 10; 
select * from example; 

    arr  
---------- 
{1,10,3} 
(1 row) 

आप INSERT में उपयोग कर सकते हैं लेकिन इसका विशेष अर्थ है। इस वाक्य के साथ आप एक तत्व दी गई संख्या से अनुक्रमित के साथ एक सरणी बना सकते हैं:

delete from example; 
insert into example(arr[3]) values (1); 
select * from example; 

    arr  
----------- 
[3:3]={1} 
(1 row) 

नतीजतन आप एक सरणी जो निम्न बाउंड है 3 है:

select arr[3] from example; 
arr 
----- 
    1 
(1 row) 
+0

यह काम करता है, धन्यवाद। मैंने "[]", "[3]", "" "और बिना" "की कोशिश की लेकिन" मैंने "[]" के बिना कोशिश नहीं की। –

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